]> gcc.gnu.org Git - gcc.git/commitdiff
emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust SIZE as well as OFFSET for BITPOS.
authorRichard Henderson <rth@redhat.com>
Tue, 17 Sep 2002 04:15:12 +0000 (21:15 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Tue, 17 Sep 2002 04:15:12 +0000 (21:15 -0700)
        * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust SIZE
        as well as OFFSET for BITPOS.

From-SVN: r57228

gcc/ChangeLog
gcc/emit-rtl.c

index 847e93afb20d24353d54de1e81c7918411958115..0a5248f0d075438f15e295a87f4a337c078371dc 100644 (file)
@@ -1,3 +1,8 @@
+2002-09-16  Richard Henderson  <rth@redhat.com>
+
+       * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust SIZE
+       as well as OFFSET for BITPOS.
+
 2002-09-16  Jeff Garzik  <jgarzik@mandrakesoft.com>
 
         * config.gcc: Treat winchip_c6-*|winchip2-*|c3-* as pentium-mmx.
index 70a1228450ea5b8d1b30259a70c1c7ada36c7a5c..4a8b9e36ea3ccd4e70ac458b970ee727bbbb19b5 100644 (file)
@@ -1885,9 +1885,14 @@ set_mem_attributes_minus_bitpos (ref, t, objectp, bitpos)
     }
 
   /* If we modified OFFSET based on T, then subtract the outstanding 
-     bit position offset.  */
+     bit position offset.  Similarly, increase the size of the accessed
+     object to contain the negative offset.  */
   if (apply_bitpos)
-    offset = plus_constant (offset, -(apply_bitpos / BITS_PER_UNIT));
+    {
+      offset = plus_constant (offset, -(apply_bitpos / BITS_PER_UNIT));
+      if (size)
+       size = plus_constant (size, apply_bitpos / BITS_PER_UNIT);
+    }
 
   /* Now set the attributes we computed above.  */
   MEM_ATTRS (ref)
This page took 0.08396 seconds and 5 git commands to generate.