function.c (assign_stack_temp_for_type): Abort if mode == Blkmode and align is less...
authorJohn Wehle <john@feith.com>
Fri, 5 Mar 1999 01:19:25 +0000 (01:19 +0000)
committerJeff Law <law@gcc.gnu.org>
Fri, 5 Mar 1999 01:19:25 +0000 (18:19 -0700)
        * function.c (assign_stack_temp_for_type): Abort
        if mode == Blkmode and align is less than
        BIGGEST_ALIGNMENT / BITS_PER_UNIT.
        (assign_stack_temp_for_type): Round the size parameter
        passed to assign_stack_local instead of size itself.
Bootstrapped on the PA and x86.

From-SVN: r25593

gcc/ChangeLog
gcc/function.c

index 0a6bf91fa8f55cb98168f8150772198cadd91681..3b0057797be25bf1d480d9e0b38b4be7ac047fd0 100644 (file)
@@ -1,3 +1,11 @@
+Fri Mar  5 02:14:54 1999  John Wehle  (john@feith.com)
+
+       * function.c (assign_stack_temp_for_type): Abort
+       if mode == Blkmode and align is less than
+       BIGGEST_ALIGNMENT / BITS_PER_UNIT.
+       (assign_stack_temp_for_type): Round the size parameter
+       passed to assign_stack_local instead of size itself.
+
 Thu Mar  4 15:00:35 1999  Richard Henderson  <rth@cygnus.com>
 
        * flow.c (delete_unreachable_blocks): Mark blocks as they
index 4d6736650d68162cc4dfbd36dba0cd16e0367447..d6d5aa6557fc20f52c2c77d37f3112762f42e5fc 100644 (file)
@@ -998,12 +998,12 @@ assign_stack_temp_for_type (mode, size, keep, type)
         So for requests which depended on the rounding of SIZE, we go ahead
         and round it now.  We also make sure ALIGNMENT is at least
         BIGGEST_ALIGNMENT.  */
-      if (mode == BLKmode)
-       {
-         align = MAX (align, BIGGEST_ALIGNMENT / BITS_PER_UNIT);
-         size = CEIL_ROUND (size, align);
-       }
-      p->slot = assign_stack_local (mode, size, align);
+      if (mode == BLKmode && align < (BIGGEST_ALIGNMENT / BITS_PER_UNIT))
+       abort();
+      p->slot = assign_stack_local (mode,
+                                   mode == BLKmode
+                                     ? CEIL_ROUND (size, align) : size,
+                                   align);
 
       p->align = align;
       p->alias_set = alias_set;