expr.c (store_expr): When copying a string constant into an array...
authorJeffrey A Law <law@cygnus.com>
Wed, 28 Nov 2001 22:34:07 +0000 (22:34 +0000)
committerJeff Law <law@gcc.gnu.org>
Wed, 28 Nov 2001 22:34:07 +0000 (15:34 -0700)
        * expr.c (store_expr): When copying a string constant into an
        array, reset the known alignment of the MEM for the section to
        be cleared to BITS_PER_UNIT.

From-SVN: r47432

gcc/ChangeLog
gcc/expr.c

index fd9e43d..8c59479 100644 (file)
@@ -1,3 +1,9 @@
+Wed Nov 28 15:36:13 2001  Jeffrey A Law  (law@cygnus.com)
+
+       * expr.c (store_expr): When copying a string constant into an
+       array, reset the known alignment of the MEM for the section to
+       be cleared to BITS_PER_UNIT.
+
 2001-11-28  Hans-Peter Nilsson  <hp@axis.com>
 
        * config/cris/cris.c: Remove whitespace at end of line.
index 240fb8b..eb7f2d3 100644 (file)
@@ -4293,6 +4293,12 @@ store_expr (exp, target, want_value)
 
                  MEM_COPY_ATTRIBUTES (dest, target);
 
+                 /* The residual likely does not have the same alignment
+                    as the original target.  While we could compute the
+                    alignment of the residual, it hardely seems worth
+                    the effort.  */
+                 set_mem_align (dest, BITS_PER_UNIT);
+
                  /* Be sure we can write on ADDR.  */
                  in_check_memory_usage = 1;
                  if (current_function_check_memory_usage)