https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120987
--- Comment #11 from Tom de Vries <vries at gcc dot gnu.org> --- I build with -fdump-tree-all -fdump-ipa-all -fdump-rtl-all, resulting in a rather large build: ... $ du -hs build/ 107G build/ ... At gdb.ltrans58.ltrans.134t.bitintlower1, I have in parse_linespec: ... <bb 231> [local count: 413228]: # DEBUG BEGIN_STMT throw_exception (&file_exception); ... and: ... <bb 266> [count: 0]: <L5>: _143 = MEM[(struct __shared_count *)&file_exception + 16B]._M_pi; if (_143 != 0B) goto <bb 267>; [0.00%] else goto <bb 268>; [0.00%] <bb 267> [count: 0]: _M_release (_143); <bb 268> [count: 0]: file_exception ={v} {CLOBBER(eob)}; # DEBUG this => NULL resx 2 ... At gdb.ltrans58.ltrans.135t.sra, I have: ... <bb 231> [local count: 413228]: MEM <signed int> [(struct gdb_exception *)&file_exception] = file_exception_611; MEM <struct _Sp_counted_base *> [(struct gdb_exception *)&file_exception + 16B] = file_exception$16$_M_pi_553; throw_exception (&file_exception); ... and: ... _143 = file_exception$16$_M_pi_267; ... which is defined by a phi: ... <bb 266> [count: 0]: # file_exception$16$_M_pi_267 = PHI <file_exception$16$_M_pi_553(225), file_exception$16$_M_pi_542(246), file_exception$16$_M_pi_702(47), file_exception$16$_M_pi_702(19), file_exception$16$_M_pi_702(26), file_exception$16$_M_pi_702(30), file_exception$16$_M_pi_702(32), file_exception$16$_M_pi_702(44), file_exception$16$_M_pi_702(46), file_exception$16$_M_pi_702(16), file_exception$16$_M_pi_702(49), file_exception$16$_M_pi_702(50), file_exception$16$_M_pi_702(68), file_exception$16$_M_pi_702(69), file_exception$16$_M_pi_702(70), file_exception$16$_M_pi_271(265), file_exception$16$_M_pi_553(231), file_exception$16$_M_pi_553(232), file_exception$16$_M_pi_542(233), file_exception$16$_M_pi_542(236), file_exception$16$_M_pi_702(259)> ... I'm not sure how to read this. There's an incoming edge from bb231, while throw_exception doesn't return. If that is an incoming edge for the resulting uncaught exception, then the value file_exception$16$_M_pi_553 is wrong. The actual value of file_exception is in memory, as updated by throw_exception.