summaryrefslogtreecommitdiff
path: root/gcc/cfgexpand.c
diff options
context:
space:
mode:
authorbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2009-03-29 17:16:06 +0000
committerbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2009-03-29 17:16:06 +0000
commitedbeda1b4e69d851381d12860a1f8050615604df (patch)
tree3bc43c40a0d8cf38e398f3a4c8c7a948126fb865 /gcc/cfgexpand.c
parenta66b13e495139f604850a6a6af89c0acefeb4de2 (diff)
downloadgcc-edbeda1b4e69d851381d12860a1f8050615604df.tar.gz
2009-03-29 Basile Starynkevitch <basile@starynkevitch.net>
MELT branch merged with trunk r145230 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@145246 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cfgexpand.c')
-rw-r--r--gcc/cfgexpand.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c
index 4bfdc5fed74..695e4ef0ef9 100644
--- a/gcc/cfgexpand.c
+++ b/gcc/cfgexpand.c
@@ -866,7 +866,8 @@ dump_stack_var_partition (void)
static void
expand_one_stack_var_at (tree decl, HOST_WIDE_INT offset)
{
- HOST_WIDE_INT align;
+ /* Alignment is unsigned. */
+ unsigned HOST_WIDE_INT align;
rtx x;
/* If this fails, we've overflowed the stack frame. Error nicely? */
@@ -879,8 +880,10 @@ expand_one_stack_var_at (tree decl, HOST_WIDE_INT offset)
offset -= frame_phase;
align = offset & -offset;
align *= BITS_PER_UNIT;
- if (align > STACK_BOUNDARY || align == 0)
+ if (align == 0)
align = STACK_BOUNDARY;
+ else if (align > MAX_SUPPORTED_STACK_ALIGNMENT)
+ align = MAX_SUPPORTED_STACK_ALIGNMENT;
DECL_ALIGN (decl) = align;
DECL_USER_ALIGN (decl) = 0;