(expand_expr, case SAVE_EXPR): Set MEM_IN_STRUCT_P appropriately when
authorRichard Kenner <kenner@gcc.gnu.org>
Fri, 13 Aug 1993 23:26:34 +0000 (19:26 -0400)
committerRichard Kenner <kenner@gcc.gnu.org>
Fri, 13 Aug 1993 23:26:34 +0000 (19:26 -0400)
the result is a MEM.

From-SVN: r5159

gcc/expr.c

index 5d7eebd8c0a03bba08e3b31929377159f234d0f7..71c21e68995b294846e6abd23aa6472e3cd806b8 100644 (file)
@@ -3608,9 +3608,15 @@ expand_expr (exp, target, tmode, modifier)
       if (SAVE_EXPR_RTL (exp) == 0)
        {
          if (mode == BLKmode)
-           temp
-             = assign_stack_temp (mode,
-                                  int_size_in_bytes (TREE_TYPE (exp)), 0);
+           {
+             temp
+               = assign_stack_temp (mode, int_size_in_bytes (type), 0);
+             MEM_IN_STRUCT_P (temp)
+               = (TREE_CODE (type) == RECORD_TYPE
+                  || TREE_CODE (type) == UNION_TYPE
+                  || TREE_CODE (type) == QUAL_UNION_TYPE
+                  || TREE_CODE (type) == ARRAY_TYPE);
+           }
          else
            {
              enum machine_mode var_mode = mode;