aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1993-09-27 01:25:54 +0000
committerRichard Stallman <rms@gnu.org>1993-09-27 01:25:54 +0000
commit673bc773d3ee1f291529c89be2c8e03991f6e0f7 (patch)
tree2b01c348dcf56b4c2d88d9d50895e8fbec34c67f
parent258a0dd497513b535e526843d55c2bd666baa65d (diff)
downloadgcc-673bc773d3ee1f291529c89be2c8e03991f6e0f7.zip
gcc-673bc773d3ee1f291529c89be2c8e03991f6e0f7.tar.gz
gcc-673bc773d3ee1f291529c89be2c8e03991f6e0f7.tar.bz2
(expand_expr, case COND_EXPR): Set MEM_IN_STRUCT_P properly for TEMP.
From-SVN: r5481
-rw-r--r--gcc/expr.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/expr.c b/gcc/expr.c
index 335a837..e16deff 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -5136,10 +5136,16 @@ expand_expr (exp, target, tmode, modifier)
if (TYPE_SIZE (type) == 0
|| TREE_CODE (TYPE_SIZE (type)) != INTEGER_CST)
abort ();
+
temp = assign_stack_temp (BLKmode,
(TREE_INT_CST_LOW (TYPE_SIZE (type))
+ BITS_PER_UNIT - 1)
/ BITS_PER_UNIT, 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
temp = gen_reg_rtx (mode);