[cfe-commits] r112935 - in /cfe/trunk: include/clang/Lex/Token.h lib/Lex/Preprocessor.cpp lib/Parse/ParseObjc.cpp test/SemaObjCXX/cxxoperator-selector.mm

Fariborz Jahanian fjahanian at apple.com
Fri Sep 3 10:36:47 PDT 2010


On Sep 3, 2010, at 9:40 AM, Chris Lattner wrote:

>
> On Sep 3, 2010, at 8:10 AM, Fariborz Jahanian wrote:
>>>> Patch to allow alternative representation of c++
>>>> operators (and, or, etc.) to be used as selectors
>>>> to match g++'s behavior.
>>>
>>> Hi Fariborz,
>>>
>>> Instead of adding this to Token, can you just use  
>>> SomeToken.getIdentifier()->isCPlusPlusOperatorKeyword() wherever  
>>> you'd check Tok.isCPlusPlusOpKeyword()?
>>
>> I tried this first. When we set the Identifier field to 0 when we  
>> detect such tokens. I tried to remove code which does that. But  
>> there are
>> assumptions of Token.getIdentifier() to be 0 and several tests  
>> broke. So, I use a 1-bit flag instead.
>
> Ah interesting!  I think it would work to catch things like  
> "tok::ampamp", then check the spelling (with PP::getSpelling) to see  
> if it is spelled "and" or "&&".  In the former, turn it back into an  
> identifier.  That would localize this weirdness to the ObjC frontend  
> instead of needing a bit on Token,

Thanks for the pointer. In r112977.

- fariborz

>
>
> -Chris
>




More information about the cfe-commits mailing list