Bug in cpplib (was: Re: typos in f77 docs)

Daniel Jacobowitz drow@false.org
Wed Mar 31 18:59:00 GMT 1999


On Sun, Mar 28, 1999 at 08:04:26AM -0500, Zack Weinberg wrote:
> On Sat, 27 Mar 1999 17:21:14 -0500, Daniel Jacobowitz wrote:
> >On Sat, Mar 27, 1999 at 01:07:30PM -0500, Zack Weinberg wrote:
> 
> >> to '@', '@ ' and '@-' to nothing, and leave all other @'s alone.  (Deleting
> >> '@ ' may cause other problems, such as mysterious, inappropriate token
> >> concatenation.  However, it shouldn't.)
> >
> >Why are macro arguments even getting this sort of escaping?  Do they
> >get run through code which expects them to be escaped after they get
> >substituted in?  In which case, wouldn't it be better to move some of
> >the escaping code to a separate routine and not ask cpp_get_token to do
> >it, allowing them never to become escaped if they don't need to be?
> 
> The parser for macro expansion uses escapes to handle corner-cases of
> the rules.  `@ ' means put a space here only if required to prevent
> pasting tokens.  `@-' means don't expand the identifier that follows
> even if it's defined as a macro.

I was able to gather that from the source.  But my question is, why do
the arguments to a macro call need to be run through this sort of
escaping?  I can see why those cases need to be handled in the
definition, but not in the actual call.

Dan

/--------------------------------\  /--------------------------------\
|       Daniel Jacobowitz        |__|     CMU, CS class of 2002      |
|   Debian GNU/Linux Developer    __   Part-Time Systems Programmer  |
|         dan@debian.org         |  |        drow@cs.cmu.edu         |
\--------------------------------/  \--------------------------------/



More information about the Gcc-patches mailing list