From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean McNeil To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org Subject: Re: preprocessor/2948 Date: Tue, 29 May 2001 09:46:00 -0000 Message-id: <20010529164604.2415.qmail@sourceware.cygnus.com> X-SW-Source: 2001-05/msg01003.html List-Id: The following reply was made to PR preprocessor/2948; it has been noted by GNATS. From: Sean McNeil To: Neil Booth Cc: nobody@gcc.gnu.org, gcc-gnats@gcc.gnu.org Subject: Re: preprocessor/2948 Date: Tue, 29 May 2001 09:40:39 -0700 The pragmas are indeed getting passed through by the cpp0. So why would they compile differently in the two cases? This is very strange. It is related to that #pragma, though. Perhaps the cpp is told to parse things differently? Sean Neil Booth wrote: > Sean McNeil wrote:- > > > This has puzzled me for a while and I've tried several additional > > things as we've been discussing this. I noticed that the cc1plus > > program installs handlers for various pragmas and discovered a > > #pragma implementation in PlotFile.cpp. When I remove this pragma, > > compilation is as I expected. > > Great, thanks for persisting. > > > HOWEVER.... there is no template code that exists within the ttt.ii > > file (after preprocessor) and adding a #pragma implementation to > > ttt.cc (copy of ttt.ii) doesn't reproduce the problem either. So I > > am still at a loss as to why > > Hmmm. This doesn't sound good. Are you saying that the #pragma does > not exist in the -E preprocessed output? If so, that's a bug. Most > pragmas are not handled or understood by CPP, so it must pass them > through in the preprocessed output unchanged. > > > 1) there is a #pragma implementation in this file (Something I do > > not expect anyone on > the gcc team to answer :). > > I have no idea. I'm not really sure what the pragma does, either, > though I know it's to do with template instantiation. > > > 2) why code is generated for the pragma even though > > -fexternal-templates was not defined. > > Again, this would require me to understand exactly what it does. > > > I suppose what it boils down to is it's not a cpp problem, but a > > cc1plus problem. Should this be reassigned? > > Probably, provided that CPP is passing through the pragma. I'll > do that when we get just a little closer. > > Does this code work, both ways, with 2.95.2 or 2.95.3? If so, it's a > regression, and I'll mark it high priority and it should get done for > 3.0. > > Neil.