From f8da819086c1b1b62df6e190a1f9948ec6c48846 Mon Sep 17 00:00:00 2001 From: Andrew Pinski Date: Wed, 17 Oct 2007 21:12:50 +0000 Subject: [PATCH] cfgexpand.c (expand_stack_vars): Add checking to make sure that the offset of a variable is not greater than the... 2007-10-17 Andrew Pinski * 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. From-SVN: r129420 --- gcc/ChangeLog | 6 ++++++ gcc/cfgexpand.c | 7 +++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9973adbd0588..d0114fd04bc6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2007-10-17 Andrew Pinski + + * 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 * config/avr/avr.c (avr_mcu_types): Add support for atmega48p, diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c index 769483b8b23d..0a4e2ca91e68 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); + } } } -- 2.47.2