[cfe-commits] r130369 - in /cfe/trunk: include/clang/Basic/TokenKinds.def lib/Frontend/InitPreprocessor.cpp lib/Parse/ParseDecl.cpp lib/Parse/ParseExpr.cpp lib/Parse/ParseExprCXX.cpp lib/Parse/ParseTentative.cpp test/Parser/MicrosoftExtensions.cp

Francois Pichet pichet2000 at gmail.com
Thu Apr 28 16:17:06 PDT 2011


On Thu, Apr 28, 2011 at 2:11 AM, Abramo Bagnara
<abramo.bagnara at gmail.com> wrote:
> Il 28/04/2011 03:59, Francois Pichet ha scritto:
>> Author: fpichet
>> Date: Wed Apr 27 20:59:37 2011
>> New Revision: 130369
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=130369&view=rev
>> Log:
>> Upgrade Microsoft's __int8, __int16, __int32 and __int64 types from builtin defines to real types.
>>
>> Otherwise statements like:
>>   __int64 var = __int64(0);
>>
>> would be expanded to:
>>   long long var = long long(0);
>>
>> and fail to compile.
>>
>> Modified:
>>     cfe/trunk/include/clang/Basic/TokenKinds.def
>>     cfe/trunk/lib/Frontend/InitPreprocessor.cpp
>>     cfe/trunk/lib/Parse/ParseDecl.cpp
>>     cfe/trunk/lib/Parse/ParseExpr.cpp
>>     cfe/trunk/lib/Parse/ParseExprCXX.cpp
>>     cfe/trunk/lib/Parse/ParseTentative.cpp
>>     cfe/trunk/test/Parser/MicrosoftExtensions.cpp
>>     cfe/trunk/test/Preprocessor/init.c
>>
>> Modified: cfe/trunk/include/clang/Basic/TokenKinds.def
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/TokenKinds.def?rev=130369&r1=130368&r2=130369&view=diff
>> ==============================================================================
>> --- cfe/trunk/include/clang/Basic/TokenKinds.def (original)
>> +++ cfe/trunk/include/clang/Basic/TokenKinds.def Wed Apr 27 20:59:37 2011
>> @@ -450,6 +450,10 @@
>>  KEYWORD(__except                  , KEYMS | KEYBORLAND)
>>  KEYWORD(__finally                 , KEYMS | KEYBORLAND)
>>  KEYWORD(__leave                   , KEYMS | KEYBORLAND)
>> +KEYWORD(__int64                   , KEYMS)
>> +ALIAS("__int8"       , char       , KEYMS)
>> +ALIAS("__int16"      , short      , KEYMS)
>> +ALIAS("__int32"      , int        , KEYMS)
>
> IMO it is better to handle this as a target dependent typedef (just like
> __builtin_va_list). This would fix also following problem reported by
> Charles and name mangling issues:
>

I think keyword+alias is fine but I am not opposed to changing to
built-in typedef. You can make the change if you really care about it.




More information about the cfe-commits mailing list