expr.c (store_constructor_field): Update ALIGN before calling store_constructor.
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>
Tue, 2 Jan 2001 16:40:35 +0000 (11:40 -0500)
committerRichard Kenner <kenner@gcc.gnu.org>
Tue, 2 Jan 2001 16:40:35 +0000 (11:40 -0500)
* expr.c (store_constructor_field): Update ALIGN before calling
store_constructor.

From-SVN: r38629

gcc/ChangeLog
gcc/expr.c

index 3dece5f..d379f7a 100644 (file)
@@ -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
index 25379e7..114f74f 100644 (file)
@@ -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