aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>2001-01-02 11:40:35 -0500
committerRichard Kenner <kenner@gcc.gnu.org>2001-01-02 11:40:35 -0500
commite0339ef7a37ec257b5f32a2dbd6c033974924242 (patch)
tree569042c7ab402bdfaac2b3453d6582e65a3bedb1
parentbd86a96456fdfdb1c3f5803b993a55b0ad08bb56 (diff)
downloadgcc-e0339ef7a37ec257b5f32a2dbd6c033974924242.zip
gcc-e0339ef7a37ec257b5f32a2dbd6c033974924242.tar.gz
gcc-e0339ef7a37ec257b5f32a2dbd6c033974924242.tar.bz2
expr.c (store_constructor_field): Update ALIGN before calling store_constructor.
* expr.c (store_constructor_field): Update ALIGN before calling store_constructor. From-SVN: r38629
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/expr.c5
2 files changed, 10 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3dece5f..d379f7a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Tue Jan 2 10:47:38 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.
+
+ * expr.c (store_constructor_field): Update ALIGN before calling
+ store_constructor.
+
2001-01-02 Jeffrey Oldham <oldham@codesourcery.com>
* config/mips/mips.c (function_arg): Don't pass NULL_TREE to
diff --git a/gcc/expr.c b/gcc/expr.c
index 25379e7..114f74f 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -4339,8 +4339,13 @@ store_constructor_field (target, bitsize, bitpos,
plus_constant (XEXP (target, 0),
bitpos / BITS_PER_UNIT));
+
+ /* Show the alignment may no longer be what it was and update the alias
+ set, if required. */
+ align = MIN (align, bitpos & - bitpos);
if (GET_CODE (target) == MEM)
MEM_ALIAS_SET (target) = alias_set;
+
store_constructor (exp, target, align, cleared, bitsize / BITS_PER_UNIT);
}
else