diff options
author | Joseph Myers <joseph@codesourcery.com> | 2005-06-03 23:25:13 +0100 |
---|---|---|
committer | Joseph Myers <jsm28@gcc.gnu.org> | 2005-06-03 23:25:13 +0100 |
commit | d4d1cfd444501f09fd1e049bf7f14bbefec9da0a (patch) | |
tree | e4e3c12f9efbb2c87208368eb71b43258fc2290b /gcc/c-decl.c | |
parent | fd693ba3cc71f4aec0109a36ac67d9bda485e298 (diff) | |
download | gcc-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/c-decl.c')
-rw-r--r-- | gcc/c-decl.c | 6 |
1 files changed, 5 insertions, 1 deletions
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); |