Hiding those aliases behind -fms-compatibility would align us closer with CL's -Za behavior.
On Fri, Aug 22, 2014 at 10:56 AM, Reid Kleckner <[email protected]> wrote: > We could, but we don't have MS compatibility in these token flags. We > would have to add a flag or implement these as identifier hacks in the > parser. > > Is it worth it? We also have all of these aliases which are just as > non-conforming: > ALIAS("_cdecl" , __cdecl , KEYMS | KEYBORLAND) > ALIAS("_fastcall" , __fastcall , KEYMS | KEYBORLAND) > ALIAS("_stdcall" , __stdcall , KEYMS | KEYBORLAND) > ALIAS("_thiscall" , __thiscall , KEYMS) > ALIAS("_uuidof" , __uuidof , KEYMS | KEYBORLAND) > ALIAS("_inline" , inline , KEYMS) > ALIAS("_declspec" , __declspec , KEYMS) > > Throwing these all under -fms-compatibility feels slightly pedantic. > > > On Fri, Aug 22, 2014 at 10:38 AM, Richard Smith <[email protected]> > wrote: > >> This is not a conforming extension. Should it be under -fms-compatibility >> instead? >> On 22 Aug 2014 10:15, "Reid Kleckner" <[email protected]> wrote: >> >>> Author: rnk >>> Date: Fri Aug 22 11:52:57 2014 >>> New Revision: 216270 >>> >>> URL: http://llvm.org/viewvc/llvm-project?rev=216270&view=rev >>> Log: >>> -fms-extensions: Alias _intNN to __intNN >>> >>> Fixes build for SPEC 2000 CPU. MSVC disables these aliases under /Za, >>> which enables stricter standards compliance. We don't currently have any >>> way to disable them. >>> >>> Patch by Kevin Smith! >>> >>> Modified: >>> cfe/trunk/include/clang/Basic/TokenKinds.def >>> cfe/trunk/test/Parser/MicrosoftExtensions.cpp >>> >>> Modified: cfe/trunk/include/clang/Basic/TokenKinds.def >>> URL: >>> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/TokenKinds.def?rev=216270&r1=216269&r2=216270&view=diff >>> >>> ============================================================================== >>> --- cfe/trunk/include/clang/Basic/TokenKinds.def (original) >>> +++ cfe/trunk/include/clang/Basic/TokenKinds.def Fri Aug 22 11:52:57 2014 >>> @@ -545,8 +545,12 @@ KEYWORD(__multiple_inheritance , >>> KEYWORD(__virtual_inheritance , KEYMS) >>> KEYWORD(__interface , KEYMS) >>> ALIAS("__int8" , char , KEYMS) >>> +ALIAS("_int8" , char , KEYMS) >>> ALIAS("__int16" , short , KEYMS) >>> +ALIAS("_int16" , short , KEYMS) >>> ALIAS("__int32" , int , KEYMS) >>> +ALIAS("_int32" , int , KEYMS) >>> +ALIAS("_int64" , __int64 , KEYMS) >>> ALIAS("__wchar_t" , wchar_t , KEYMS) >>> ALIAS("_asm" , asm , KEYMS) >>> ALIAS("_alignof" , __alignof , KEYMS) >>> >>> Modified: cfe/trunk/test/Parser/MicrosoftExtensions.cpp >>> URL: >>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Parser/MicrosoftExtensions.cpp?rev=216270&r1=216269&r2=216270&view=diff >>> >>> ============================================================================== >>> --- cfe/trunk/test/Parser/MicrosoftExtensions.cpp (original) >>> +++ cfe/trunk/test/Parser/MicrosoftExtensions.cpp Fri Aug 22 11:52:57 >>> 2014 >>> @@ -226,6 +226,11 @@ void interface_test() { >>> } >>> >>> __int64 x7 = __int64(0); >>> +_int64 x8 = _int64(0); >>> +static_assert(sizeof(_int64) == 8, ""); >>> +static_assert(sizeof(_int32) == 4, ""); >>> +static_assert(sizeof(_int16) == 2, ""); >>> +static_assert(sizeof(_int8) == 1, ""); >>> >>> int __identifier(generic) = 3; >>> int __identifier(int) = 4; >>> >>> >>> _______________________________________________ >>> cfe-commits mailing list >>> [email protected] >>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits >>> >> >> _______________________________________________ >> cfe-commits mailing list >> [email protected] >> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits >> >> > > _______________________________________________ > cfe-commits mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits > >
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
