diff options
author | 1999-09-08 08:17:50 +0000 | |
---|---|---|
committer | 1999-09-08 08:17:50 +0000 | |
commit | e2a26b5b49b7b405ff0e4e8ec30748575fc64d43 (patch) | |
tree | c760747ec0378728dba1582d871d5221fbb88c48 | |
parent | flags_to_string() and string_to_flags() should take pointers to a u_int (diff) | |
download | wireguard-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.c | 7 |
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; |