[cfe-commits] r134588 - in /cfe/trunk: lib/Lex/TokenLexer.cpp test/Preprocessor/macro_paste_hashhash.c
Chris Lattner
clattner at apple.com
Thu Jul 7 10:47:19 PDT 2011
On Jul 7, 2011, at 10:45 AM, Argyrios Kyrtzidis wrote:
>> This really shouldn't be using SM.isBeforeInSourceLocationOffset. The way we handle hashhash elsewhere is to turn it into tok::other when it shouldn't cause token pasting. For example:
>>
>> // Turn ## into 'unknown' to avoid # ## # from looking like a paste
>> // operator.
>> if (Result.is(tok::hashhash))
>> Result.setKind(tok::unknown);
>>
>> Can you rework this to have the argument expansion logic strip tok::hashhash's from arguments instead of using the SM.isBeforeInSourceLocationOffset query?
>
> Are you sure ? If we keep tok::hashhash we will be able to have the parser provide an error like gcc's diagnostic "error: stray ‘##’ in program".
We can still produce that diagnostic. Just use "stray '%0' in program" and use the spelling of a tok::other token when reporting the error.
-Chris
More information about the cfe-commits
mailing list