------- Additional Comments From joseph at codesourcery dot com 2005-06-02
14:17 -------
Subject: Re: New: Memory management problem in new C parser
On Thu, 2 Jun 2005, ebotcazou at gcc dot gnu dot org wrote:
> Parser obstack memory is wrongly freed in c_parser_translation_unit, but I
> don't
> know enough of the new C parser to debug it myself.
I don't see anything intrinsically to do with the parser in this bug; when
a function finishes, label_context_stack_se and label_context_stack_vm
should end up as NULL so this memory should not be live.
The problem looks to me to be that
if (decl1 == 0)
return 0;
in start_function also needs to do
label_context_stack_se = label_context_stack_se->next
label_context_stack_vm = label_context_stack_vm->next
before returning. This problem could also apply on 4.0 branch (even if
not with these testcases) so the fix should be applied there as well.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21879