This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH] Fix PR52977
On Thu, 26 Apr 2012, Diego Novillo wrote:
> On 4/26/12 9:35 AM, Diego Novillo wrote:
> > On Thu, Apr 26, 2012 at 06:43, Dodji Seketeli<email@example.com> wrote:
> > > I guess it's also worth noting one limitation of PPHs that is, if I
> > > believe the wiki:
> > >
> > > In essence, the only headers that can be pre-parsed are those that
> > > produce the same result when they are compiled in isolation or as
> > > part of another translation unit. So, header files that are affected
> > > by pre-processor symbols defined before inclusion are not going to
> > > be considered (e.g., stddef.h).
> > >
> > > : http://gcc.gnu.org/wiki/pph#Scope_and_limitations
> > >
> > > How hard would it be to drop that limitation?
> > It's an explicit non-goal, actually. If you relax this requirements,
> > you might as well re-parse the header file. The work needed to make
> > flexible PPH images will rob you of most/all the performance you were
> > looking for.
> Expanding a bit on this point.
> One of the goals of PPH is to act as a bridge towards C++ modules, which is
> currently being discussed for inclusion in the next C++ standard.
> While it is uncertain what modules will look like, we want to use this
> experience to inform the committee on the different tradeoffs and issues we
> found. We will publishing something shortly, and discussing it at the Prague
> I a future world with modules (if it comes to be), files acting as modules
> will need to have exactly one meaning, regardless of where they are imported
> from or what was imported before them (think Java/Go/Python modules).
And btw - the PCH implementation shares this limitation. All tokens
consumed are part of the PCH - changing the state when trying to use
the PCH will invalidate it (or crash gcc). In this way PCH is even
more limited than PPH because you can only have a single PCH file
and that single PCH file must represent the very first tokens of
the compilation unit it is used in.
Richard Guenther <firstname.lastname@example.org>
SUSE / SUSE Labs
SUSE LINUX Products GmbH - Nuernberg - AG Nuernberg - HRB 16746
GF: Jeff Hawn, Jennifer Guild, Felix ImendÃ¶rffer