aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2005-06-03 23:25:13 +0100
committerJoseph Myers <jsm28@gcc.gnu.org>2005-06-03 23:25:13 +0100
commitd4d1cfd444501f09fd1e049bf7f14bbefec9da0a (patch)
treee4e3c12f9efbb2c87208368eb71b43258fc2290b /gcc
parentfd693ba3cc71f4aec0109a36ac67d9bda485e298 (diff)
downloadgcc-d4d1cfd444501f09fd1e049bf7f14bbefec9da0a.zip
gcc-d4d1cfd444501f09fd1e049bf7f14bbefec9da0a.tar.gz
gcc-d4d1cfd444501f09fd1e049bf7f14bbefec9da0a.tar.bz2
re PR c/21879 (Memory management problem)
PR c/21879 * c-decl.c (start_function): Restore label_context_stack_se and label_context_stack_vm if returning with an error. From-SVN: r100557
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/c-decl.c6
2 files changed, 11 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 372e308..2449d13 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2005-06-03 Joseph S. Myers <joseph@codesourcery.com>
+
+ PR c/21879
+ * c-decl.c (start_function): Restore label_context_stack_se and
+ label_context_stack_vm if returning with an error.
+
2005-06-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
* configure.ac: Check declaration for asprintf, needed by
diff --git a/gcc/c-decl.c b/gcc/c-decl.c
index d36ceb5..ec94f95 100644
--- a/gcc/c-decl.c
+++ b/gcc/c-decl.c
@@ -5802,7 +5802,11 @@ start_function (struct c_declspecs *declspecs, struct c_declarator *declarator,
/* If the declarator is not suitable for a function definition,
cause a syntax error. */
if (decl1 == 0)
- return 0;
+ {
+ label_context_stack_se = label_context_stack_se->next;
+ label_context_stack_vm = label_context_stack_vm->next;
+ return 0;
+ }
decl_attributes (&decl1, attributes, 0);