http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45172
--- Comment #6 from Richard Guenther <rguenth at gcc dot gnu.org> 2010-11-15 13:18:50 UTC --- We indeed have before ehcleanup: # BLOCK 26 # PRED: 24 (false,exec) 25 (true,exec) dbcsr_checksum (&product_matrix, &error); # SUCC: 31 (eh,exec) 27 (fallthru,exec) # BLOCK 27 # PRED: 26 (fallthru,exec) 31 (fallthru,exec) # finally_tmp.15_17 = PHI <1(26), 0(31)> # all_sizes$data_322 = PHI <D.1562_274(26), all_sizes$data_320(31)> ... # BLOCK 31 # PRED: 21 (eh,exec) 23 (eh,exec) 26 (eh,exec) # all_sizes$data_320 = PHI <all_sizes$data_318(21), all_sizes$data_318(23), D.1562_274(26)> <L71>: goto <bb 27>; # SUCC: 27 (fallthru,exec) and we thread that jump leading to the duplicate edge (which verify_flow_info isn't happy about). Maybe that's the only thing to fix.