summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorespie <espie@openbsd.org>1999-09-08 08:17:50 +0000
committerespie <espie@openbsd.org>1999-09-08 08:17:50 +0000
commite2a26b5b49b7b405ff0e4e8ec30748575fc64d43 (patch)
treec760747ec0378728dba1582d871d5221fbb88c48
parentflags_to_string() and string_to_flags() should take pointers to a u_int (diff)
downloadwireguard-openbsd-e2a26b5b49b7b405ff0e4e8ec30748575fc64d43.tar.xz
wireguard-openbsd-e2a26b5b49b7b405ff0e4e8ec30748575fc64d43.zip
Better stack usage, bugfix from current.
Fri Aug 27 09:36:17 1999 Andreas Schwab <schwab@suse.de> * function.c (assign_stack_temp_for_type): Fix change of Mar 5 for the fact that ALIGN is measured in bits, not bytes.
-rw-r--r--gnu/egcs/gcc/function.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/gnu/egcs/gcc/function.c b/gnu/egcs/gcc/function.c
index f41982ec363..d2cf4c2edfb 100644
--- a/gnu/egcs/gcc/function.c
+++ b/gnu/egcs/gcc/function.c
@@ -1028,11 +1028,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 < (BIGGEST_ALIGNMENT / BITS_PER_UNIT))
+ if (mode == BLKmode && align < BIGGEST_ALIGNMENT)
abort();
p->slot = assign_stack_local (mode,
- mode == BLKmode
- ? CEIL_ROUND (size, align) : size,
+ (mode == BLKmode
+ ? CEIL_ROUND (size, align / BITS_PER_UNIT)
+ : size),
align);
p->align = align;