------- Comment #5 from rguenth at gcc dot gnu dot org 2006-04-20 08:44 ------- (gdb) call debug_generic_expr(stmt) *(struct VectorD.1984 *) D.2012 = dD.1989
that's not gimple. We trip over that in into-ssa. (gdb) call debug_bb_n(2) ;; basic block 2, loop depth 0, count 0 ;; prev block 0, next block 1 ;; pred: ENTRY (fallthru) ;; succ: EXIT <bb 2>: D.2013 = operator new (16); D.2012 = (struct Point *) D.2013; *(struct Vector *) D.2012 = d; return; We gimplified that to void add_duck() () { struct Point * D.2012; void * D.2013; D.2013 = operator new (16); D.2012 = (struct Point *) D.2013; try { *D.2012 = f () [return slot optimization]; } catch { operator delete (D.2012); } } but after inlining we get void add_duck() () { void * D.2013; struct Point * D.2012; <bb 2>: D.2013 = operator new (16); D.2012 = (struct Point *) D.2013; *(struct Vector *) D.2012 = d; return; } So inlining produces the non-gimple trees. -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |hubicka at gcc dot gnu dot | |org GCC build triplet|i486-linux-gnu | GCC host triplet|i486-linux-gnu | GCC target triplet|i486-linux-gnu | Summary|[4.1/4.2 regression] ICE in |[4.1/4.2 regression] ICE in |get_indirect_ref_operands, |get_indirect_ref_operands, |at tree-ssa-operands.c:1515 |at tree-ssa-operands.c:1515, | |inlining produces non-gimple http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27218