r216270 - -fms-extensions: Alias _intNN to __intNN

David Majnemer david.majnemer at gmail.com
Fri Aug 22 11:10:46 PDT 2014


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 <rnk at google.com> 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 <richard at metafoo.co.uk>
> wrote:
>
>> This is not a conforming extension. Should it be under -fms-compatibility
>> instead?
>>  On 22 Aug 2014 10:15, "Reid Kleckner" <reid at kleckner.net> 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
>>> cfe-commits at cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>>>
>>
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>>
>>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20140822/5786fd0a/attachment.html>


More information about the cfe-commits mailing list