aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
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);