This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: Serious error-causing change in new CPP's -traditional behavior
Zack Weinberg wrote:-
> > Not legal -- the token following # must be the name of a macro argument
>
> Actually, this is legal; the ## converts the # into an ordinary
> token. It does rely on the unspecified order of evaluation of # and
> ## operators, but we always do ## first.
No, I don't think it is. You're right that order of evaluation isn't
specified, but you can't just "lose" the # like you suggest:-
6.10.3.2.1: Each # preprocessing token in the replacement list of a
function-like macro shall be followed by a parameter as the next
preprocessing token in the replacement list.
Neil.