aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1995-12-04 14:10:50 -0500
committerRichard Kenner <kenner@gcc.gnu.org>1995-12-04 14:10:50 -0500
commitcf04eb80b0bc71eeabffc5f2c9685526bef673c4 (patch)
tree10a5190023187c01b8dcd9ddca570d6a74efa7be /gcc
parent9c99a1e928db1a463c5b79ec8e504ede97cf41c1 (diff)
downloadgcc-cf04eb80b0bc71eeabffc5f2c9685526bef673c4.zip
gcc-cf04eb80b0bc71eeabffc5f2c9685526bef673c4.tar.gz
gcc-cf04eb80b0bc71eeabffc5f2c9685526bef673c4.tar.bz2
(store_constructor, record): If field is READONLY, set
RTX_UNCHANGING_P in TO_RTX. From-SVN: r10671
Diffstat (limited to 'gcc')
-rw-r--r--gcc/expr.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/expr.c b/gcc/expr.c
index 2d307a2..1d9fed0 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -3070,6 +3070,12 @@ store_constructor (exp, target)
force_reg (ptr_mode, offset_rtx)));
}
+ if (TREE_READONLY (field))
+ {
+ to_rtx = copy_rtx (to_rtx);
+ RTX_UNCHANGING_P (to_rtx) = 1;
+ }
+
store_field (to_rtx, bitsize, bitpos, mode, TREE_VALUE (elt),
/* The alignment of TARGET is
at least what its type requires. */