diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5d180c89b20a..9f760a2b16fe 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-07-27 Richard Henderson + + * function.c (assign_stack_local_1): Widen alignment to HOST_WIDE_INT + before rounding. + 2004-07-27 Zack Weinberg * libgcc2.c: Change all conditionals testing diff --git a/gcc/function.c b/gcc/function.c index 7624342be167..699a009ee039 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -453,11 +453,13 @@ assign_stack_local_1 (enum machine_mode mode, HOST_WIDE_INT size, int align, use logical operations which are unambiguous. */ #ifdef FRAME_GROWS_DOWNWARD function->x_frame_offset - = (FLOOR_ROUND (function->x_frame_offset - frame_phase, alignment) + = (FLOOR_ROUND (function->x_frame_offset - frame_phase, + (unsigned HOST_WIDE_INT) alignment) + frame_phase); #else function->x_frame_offset - = (CEIL_ROUND (function->x_frame_offset - frame_phase, alignment) + = (CEIL_ROUND (function->x_frame_offset - frame_phase, + (unsigned HOST_WIDE_INT) alignment) + frame_phase); #endif }