This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: preprocessor/7452: Preprocessor doesn't allow pasting " foo-> ## BAR "


Since we were cc: <gcc-gnats@gcc.gnu.org>, it is already attached to the bug report:
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-
trail&database=gcc&pr=7452

Thanks,
Andrew Pinski

PS I don't have gnats write access so can someone close this bug. Thanks.


On Wednesday, July 31, 2002, at 12:17 , David E. Weekly wrote:

Andrew,

Thank you. That obvious answer had escaped me.

I'd be happy to have preprocessor/7452 closed as Not A Bug, with your
helpful comments below attached.

Humbly Yours,
 David E. Weekly
 Software Developer
 There, Inc.


-----Original Message-----
From: Andrew Pinski [mailto:pinskia@physics.uc.edu]
Sent: Tuesday, July 30, 2002 9:01 PM
To: David E. Weekly
Cc: gcc-gnats@gcc.gnu.org
Subject: Re: preprocessor/7452: Preprocessor doesn't allow pasting "
foo-> ## BAR "
Importance: High


The following will work as expected:
#define foo(A) { bar->A() }
foo( methodOfBar );

There is no need for pasting.
The only need for pasting is where you have two identifiers and
you want them to be one identifier.

Thanks,
Andrew Pinski



On Tuesday, July 30, 2002, at 11:51 , David E. Weekly wrote:

Andrew,

Thank you for your patient explanation. If I do wish to use the modern
preprocessor, is it possible in any way to have some:

#define foo(A) { bar-> ## A() }
foo( methodOfBar );

Or, without resorting to the "traditional" CPP, can it simply
not be done?

Yours,
 David E. Weekly
 Software Developer
 There, Inc.


-----Original Message-----
From: Andrew Pinski [mailto:pinskia@physics.uc.edu]
Sent: Tuesday, July 30, 2002 8:42 PM
To: David E. Weekly
Cc: gcc-gnats@gcc.gnu.org
Subject: Re: preprocessor/7452: Preprocessor doesn't allow pasting "
foo-> ## BAR "
Importance: High


It is illegal because you are trying to paste together two
tokens which do not make one token in terms of the C standard.
It has been permanently removed because gcc uses a new
preprocessor, this has been this way since 3.0.
You might get what you expect from using the option -traditional-cpp.

Thanks,
Andrew Pinski



On Tuesday, July 30, 2002, at 11:30 , David E. Weekly wrote:

Andrew,

Does the standard allow some way to tack on a method name
(i.e., "is there
another way to do this?"), or has this useful feature simply been
permanently removed?

Also: why is this construct illegal?

Yours,
 David E. Weekly
 Software Developer
 There, Inc.

-----Original Message-----
From: Andrew Pinski [mailto:pinskia@physics.uc.edu]
Sent: Tuesday, July 30, 2002 8:23 PM
To: david@there.com
Cc: gcc-gnats@gcc.gnu.org
Subject: Re: preprocessor/7452: Preprocessor doesn't allow pasting "
foo-> ## BAR "
Importance: High


What you are doing is illegal according the C standard.

Thanks,
Andrew Pinski













Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]