------- Comment #1 from rguenth at gcc dot gnu dot org 2006-05-02 14:56 ------- Happens at the point PRE calls cleanup_tree_cfg after purging dead eh edges.
Found partial redundancy for expression *VH.52 (VH.57) Created value VH.86 for *D.934_6 Inserted pretmp.60_42 = D.1001_27 in predecessor 14 Created phi prephitmp.61_20 = PHI <storetmp.59_51(17), pretmp.60_42(14)>; in block 4 Replaced *D.934_6 with prephitmp.61_20 in D.936_22 = *D.934_6; Removed EH side effects. Removing basic block 18 ;; basic block 18, loop depth 0, count 0 ;; prev block 5, next block 6 ;; pred: ;; succ: 16 [100.0%] (fallthru) <L10>:; goto <bb 16> (<L6>); Merging blocks 3 and 17 Merging blocks 4 and 5 (gdb) call debug_bb_n (3) ;; basic block 3, loop depth 0, count 0 ;; prev block 2, next block 4 ;; pred: 2 [100.0%] (fallthru,exec) ;; succ: 4 [100.0%] (fallthru) <bb 3>: D.938_17 = D.935_10 + -2; # SMT.37_56 = V_MAY_DEF <SMT.37_53>; # SMT.41_57 = V_MAY_DEF <SMT.41_54>; *D.934_6 = D.938_17; # VUSE <SMT.37_56>; # VUSE <SMT.41_57>; storetmp.59_51 = *D.934_6; the store ends the BB, flow info fails to verify at the load. No EH info in the block, cfg_cleanup merged it with BB 17 (which is empty). -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27389