From if (__p_91 != 0B) goto <bb 39>; else goto <bb 40>; # SUCC: 39 [100.0%] count:931 (true,exec) 40 (false,exec)
# BLOCK 39 freq:4175 count:931 # PRED: 38 [100.0%] count:931 (true,exec) operator delete (__p_91); # SUCC: 40 [100.0%] count:931 (fallthru,exec) # BLOCK 40 freq:4188 count:934 # PRED: 38 (false,exec) 39 [100.0%] count:931 (fallthru,exec) <<<exception object>>> = save_eptr.427_34; <<<filter object>>> = save_filt.428_33; resx 3; # SUCC: it generates if (__p_91 != 0B) goto <bb 39>; else goto <bb 40>; # SUCC: 39 [100.0%] count:931 (true,exec) 40 (false,exec) # BLOCK 39 freq:4175 count:931 # PRED: 38 [100.0%] count:931 (true,exec) operator delete (__p_91); # SUCC: 48 [100.0%] count:931 (fallthru,exec) # BLOCK 48 freq:4175 count:931 # PRED: 39 [100.0%] count:931 (fallthru,exec) <<<exception object>>> = save_eptr.427_34; <<<filter object>>> = save_filt.428_33; resx 3; # SUCC: # BLOCK 40 freq:13 count:3 # PRED: 38 (false,exec) <<<exception object>>> = save_eptr.427_34; <<<filter object>>> = save_filt.428_33; resx 3; # SUCC: duplicating the tail. This causes us to ICE later like Loop.cpp:75: internal compiler error: in expand_resx_expr, at except.c:573 Please submit a full bug report, with preprocessed source if appropriate. See <http://bugs.opensuse.org/> for instructions. -- Summary: [4.3/4.4/4.5 Regression] tracer duplicates blocks w/o adjusting EH tree Product: gcc Version: 4.5.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: rguenth at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40585