On Thu, Apr 28, 2011 at 2:11 AM, Abramo Bagnara <[email protected]> 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. _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
