On Apr 28, 2011, at 4:17 PM, Francois Pichet wrote: > 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.
If you can really write "unsigned __int8", then it has to be a keyword. Well, unless there's some ludicrous MS extension to modify typedefs. John. _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
