diff options
| -rw-r--r-- | gcc/ChangeLog | 6 | ||||
| -rw-r--r-- | gcc/cfgexpand.c | 7 |
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); + } } } |
