This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: C++ PATCH: PR 21687
On Fri, Sep 02, 2005 at 11:52:01AM -0700, Mark Mitchell wrote:
> Daniel Berlin wrote:
> >On Fri, 2005-09-02 at 11:31 -0700, Mark Mitchell wrote:
> >
> >>We were missing ggc_push_context calls around functions in local
> >>classes; we want to collect within those functions, but we have local
> >>state that is not in GC roots.
>
> >Is there some reason we've chosen not to do the same here?
>
> Because we don't know what the local state is. We're deep in the midst
> of parsing one function, and now enter another. The other choice is to
> eliminate the ggc_collect call in expand_or_defer_fn in cp/semantics.c
> when in a local class, i.e, if function_depth. That will result in
> potentially piling up a lot of garbage, but it should work I guess.
That's what we used to do when compiling nested functions, yes.
> If we're not supposing to be using ggc_push_context, why wasn't that
> code removed? There's no way to know that it's not supposed to be used
> anymore.
Because extracting all of its tendrils from the page allocator was very
difficult and we were well into the 4.0 release cycle at the time. I
didn't want to remove the functions without removing the rest of the
now-dead bits; if we do that, it'll be years before someone gets around
to it.
--
Daniel Jacobowitz
CodeSourcery, LLC