------- Comment #3 from rguenth at gcc dot gnu dot org 2010-07-06 08:44 ------- (In reply to comment #2) > Actually it seems to be fallout of my local DECL_BY_REFERENCE change (so it > does not reproduce on clean mainline). > Apprently the result_slot_addr is something that is not allowed in mem_ref. > It goes away with: > @@ -902,6 +903,8 @@ remap_gimple_op_r (tree *tp, int *walk_s > then regimplification is probably needed. */ > if (invariant && !is_gimple_min_invariant (*tp)) > id->regimplify = true; > + if (!is_gimple_mem_ref_addr (TREE_OPERAND (*tp, 0))) > + id->regimplify = true; > > *walk_subtrees = 0; > > > Does it seem to make sense?
No. It should have been canonicalized a few lines above in MEM_REF handling. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44826