From: Reid Kleckner Date: Fri, 22 Aug 2014 16:52:57 +0000 (+0000) Subject: -fms-extensions: Alias _intNN to __intNN X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=703e007714b477763fe7beb091aab6b1271830eb;p=clang -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! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216270 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/Basic/TokenKinds.def b/include/clang/Basic/TokenKinds.def index 5d088336df..5c49bcfd52 100644 --- a/include/clang/Basic/TokenKinds.def +++ b/include/clang/Basic/TokenKinds.def @@ -545,8 +545,12 @@ KEYWORD(__multiple_inheritance , KEYMS) 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) diff --git a/test/Parser/MicrosoftExtensions.cpp b/test/Parser/MicrosoftExtensions.cpp index 0174ec2f29..ee530b8669 100644 --- a/test/Parser/MicrosoftExtensions.cpp +++ b/test/Parser/MicrosoftExtensions.cpp @@ -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;