Commit 71f85957 by Jeff Law Committed by Jeff Law

gimplify.c (gimplify_compound_lval): Reset TREE_SIDE_EFFECTS after gimplifying…

gimplify.c (gimplify_compound_lval): Reset TREE_SIDE_EFFECTS after gimplifying the innermost component.

        * gimplify.c (gimplify_compound_lval): Reset TREE_SIDE_EFFECTS
        after gimplifying the innermost component.

In

From-SVN: r83670
parent 75822272
2004-06-24 Jeff Law <law@redhat.com>
* gimplify.c (gimplify_compound_lval): Reset TREE_SIDE_EFFECTS
after gimplifying the innermost component.
2004-06-25 Richard Sandiford <rsandifo@redhat.com>
PR target/16176
......
......@@ -1942,6 +1942,22 @@ gimplify_compound_lval (tree *expr_p, tree *pre_p,
want_lvalue ? fb_lvalue : fb_rvalue);
ret = MIN (ret, tret);
/* The innermost expression P may have originally had TREE_SIDE_EFFECTS
set which would have caused all the outer expressions in EXPR_P leading
to P to also have had TREE_SIDE_EFFECTS set.
Gimplification of P may have cleared TREE_SIDE_EFFECTS on P, which should
be propagated to P's parents, innermost to outermost. */
for (p = expr_p; handled_component_p (*p); p = &TREE_OPERAND (*p, 0))
VARRAY_PUSH_TREE (stack, *p);
for (; VARRAY_ACTIVE_SIZE (stack) > 0; )
{
tree t = VARRAY_TOP_TREE (stack);
recalculate_side_effects (t);
VARRAY_POP (stack);
}
/* If the outermost expression is a COMPONENT_REF, canonicalize its type. */
if (!want_lvalue && TREE_CODE (*expr_p) == COMPONENT_REF)
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment