https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90586
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |wrong-debug Status|UNCONFIRMED |NEW Last reconfirmed| |2019-05-23 CC| |jakub at gcc dot gnu.org, | |rguenth at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- The reason is that somehow the only stmt with line 9 prevailing is one not originally having it: <bb 6> : [t.c:11:14] D.1918 = 0; [t.c:11:14] // predicted unlikely by early return (on trees) predictor. [t.c:9:11] g = {CLOBBER}; goto <bb 8>; [INV] <bb 7> : [t.c:14:10] D.1918 = 0; <bb 8> : <L8>: return D.1918; so the return stmt will end up inheriting it if we are "lucky". try-finally lowering assigns the location, possibly simply taking the location of the last stmt from the "throw".