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: > By the way, I just realized: the behavior of __int8 in clang is wrong > currently. It should always be signed (unless specified otherwise with > 'unsigned'), whereas right now it can be signed or unsigned depending on > the -funsigned-char parameter, since it's an alias to 'char'. _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
