aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>2001-10-28 16:06:17 +0000
committerRichard Kenner <kenner@gcc.gnu.org>2001-10-28 11:06:17 -0500
commit61cb205c64dac1c3d69c8d1e51b14f37f0b09d1b (patch)
tree174fc296c2a1412123284b48df83b498a9fab814
parent9591d210634dab2ee02dd260ab4a3ca2b6aaed04 (diff)
downloadgcc-61cb205c64dac1c3d69c8d1e51b14f37f0b09d1b.zip
gcc-61cb205c64dac1c3d69c8d1e51b14f37f0b09d1b.tar.gz
gcc-61cb205c64dac1c3d69c8d1e51b14f37f0b09d1b.tar.bz2
* expr.c (store_constructor_field): Only call adjust_address on MEM.
From-SVN: r46585
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/expr.c13
2 files changed, 11 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index dfbbf9d..ee0f8e6 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/expr.c b/gcc/expr.c
index cd90364..c0ddd98 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -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