* expr.c (store_constructor_field): Only call adjust_address on MEM.
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>
Sun, 28 Oct 2001 16:06:17 +0000 (16:06 +0000)
committerRichard Kenner <kenner@gcc.gnu.org>
Sun, 28 Oct 2001 16:06:17 +0000 (11:06 -0500)
From-SVN: r46585

gcc/ChangeLog
gcc/expr.c

index dfbbf9d2c0cef5d0b72a519420c1c3ae0d55d9f7..ee0f8e613364c5a7295f2b8db9ef0c2b0eedce0d 100644 (file)
@@ -1,3 +1,7 @@
+Sun Oct 28 09:59:54 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * expr.c (store_constructor_field): Only call adjust_address on MEM.
+
 Sun Oct 28 16:48:09 CET 2001  Jan Hubicka  <jh@suse.cz>
 
        * genrecog.c (write_switch):  Output if before switch for
index cd903641398747a88c695467e9743229834c7fd6..c0ddd98042ebfd158f54a64a7556323b11144c04 100644 (file)
@@ -4472,12 +4472,13 @@ store_constructor_field (target, bitsize, bitpos,
         generate unnecessary clear instructions anyways.  */
       && (bitpos == 0 || GET_CODE (target) == MEM))
     {
-      target
-       = adjust_address (target,
-                         GET_MODE (target) == BLKmode
-                         || 0 != (bitpos
-                                  % GET_MODE_ALIGNMENT (GET_MODE (target)))
-                         ? BLKmode : VOIDmode, bitpos / BITS_PER_UNIT);
+      if (GET_CODE (target) == MEM)
+       target
+         = adjust_address (target,
+                           GET_MODE (target) == BLKmode
+                           || 0 != (bitpos
+                                    % GET_MODE_ALIGNMENT (GET_MODE (target)))
+                           ? BLKmode : VOIDmode, bitpos / BITS_PER_UNIT);
 
 
       /* Show the alignment may no longer be what it was and update the alias