]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Avoid incorrect setting of MEM_IN_STRUCT_P
authorBernd Schmidt <bernds@redhat.co.uk>
Fri, 27 Oct 2000 12:56:40 +0000 (12:56 +0000)
committerBernd Schmidt <bernds@gcc.gnu.org>
Fri, 27 Oct 2000 12:56:40 +0000 (12:56 +0000)
From-SVN: r37085

gcc/ChangeLog
gcc/expr.c

index 396c43c536e193b49c18a98066e3e5d54ad60bf5..af8ef3d161275d39bc39dc0ac54a13e291b628f9 100644 (file)
@@ -1,3 +1,8 @@
+2000-10-27  Bernd Schmidt  <bernds@redhat.co.uk>
+
+       * expr.c (expand_expr, case INDIRECT_REF): If the address is a
+       PLUS, that does not prove the object is in a structure.
+
 2000-08-25  David Edelsohn  <edelsohn@gnu.org>
 
        * collect2.c (use_import_list): Always return 0 (disable).
index 812e1fb661cef9572738816d9836ad776a4cb504..98eadfa5599583f719839e76546f622c163a26f5 100644 (file)
@@ -6262,12 +6262,8 @@ expand_expr (exp, target, tmode, modifier)
          }
 
        temp = gen_rtx_MEM (mode, op0);
-       /* If address was computed by addition,
-          mark this as an element of an aggregate.  */
-       if (TREE_CODE (exp1) == PLUS_EXPR
-           || (TREE_CODE (exp1) == SAVE_EXPR
-               && TREE_CODE (TREE_OPERAND (exp1, 0)) == PLUS_EXPR)
-           || AGGREGATE_TYPE_P (TREE_TYPE (exp))
+
+       if (AGGREGATE_TYPE_P (TREE_TYPE (exp))
            || (TREE_CODE (exp1) == ADDR_EXPR
                && (exp2 = TREE_OPERAND (exp1, 0))
                && AGGREGATE_TYPE_P (TREE_TYPE (exp2))))