aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/cfgexpand.c7
2 files changed, 11 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9973adb..d0114fd 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2007-10-17 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ * cfgexpand.c (expand_stack_vars): Add checking to make sure
+ that the offset of a variable is not greater than the size
+ of the paritition.
+
2007-10-17 Anatoly Sokolov <aesok@post.ru>
* config/avr/avr.c (avr_mcu_types): Add support for atmega48p,
diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c
index 769483b..0a4e2ca 100644
--- a/gcc/cfgexpand.c
+++ b/gcc/cfgexpand.c
@@ -579,8 +579,11 @@ expand_stack_vars (bool (*pred) (tree))
/* Create rtl for each variable based on their location within the
partition. */
for (j = i; j != EOC; j = stack_vars[j].next)
- expand_one_stack_var_at (stack_vars[j].decl,
- stack_vars[j].offset + offset);
+ {
+ gcc_assert (stack_vars[j].offset <= stack_vars[i].size);
+ expand_one_stack_var_at (stack_vars[j].decl,
+ stack_vars[j].offset + offset);
+ }
}
}