aboutsummaryrefslogtreecommitdiff
path: root/gcc/function.c
diff options
context:
space:
mode:
authorJohn Wehle <john@feith.com>1999-03-05 01:19:25 +0000
committerJeff Law <law@gcc.gnu.org>1999-03-04 18:19:25 -0700
commit6f67a30d15afdf01e89ad5b8c88f5ad9bef94bb6 (patch)
tree33690e0e0c157ed4d3c3cf1c26664e7cdb9bf2ab /gcc/function.c
parent01587fa2fe4deff7bf106fa223d6c1ed5fc75db5 (diff)
downloadgcc-6f67a30d15afdf01e89ad5b8c88f5ad9bef94bb6.zip
gcc-6f67a30d15afdf01e89ad5b8c88f5ad9bef94bb6.tar.gz
gcc-6f67a30d15afdf01e89ad5b8c88f5ad9bef94bb6.tar.bz2
function.c (assign_stack_temp_for_type): Abort if mode == Blkmode and align is less than BIGGEST_ALIGNMENT / BITS_PER_UNIT.
* 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
Diffstat (limited to 'gcc/function.c')
-rw-r--r--gcc/function.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/gcc/function.c b/gcc/function.c
index 4d67366..d6d5aa6 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -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;