http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47918
--- Comment #3 from Jan Hubicka <hubicka at gcc dot gnu.org> 2011-03-07 13:53:50 UTC --- I believe that the nonlocal gotos should be represented correctly in function marked noreturn. So i think noreturn function can do nonlocal goto... I get following CFG: x (int a) { struct FRAME.x FRAME.0; # BLOCK 2 freq:10000 # PRED: ENTRY [100.0%] (fallthru,exec) y (a_1(D)); [static-chain: &FRAME.0] # SUCC: 3 [100.0%] (ab,exec) # BLOCK 3 freq:10000 # PRED: 2 [100.0%] (ab,exec) <L0>: [non-local] # SUCC: 4 [100.0%] (fallthru,exec) # BLOCK 4 freq:10000 # PRED: 3 [100.0%] (fallthru,exec) xlab: return a_1(D); # SUCC: EXIT [100.0%] } this seems all right (i.e. there is abnormal edge to BB 3 for non-local goto) We need to work out what really goes wrong for m68. Honza