]> granicus.if.org Git - clang/commitdiff
-fms-extensions: Alias _intNN to __intNN
authorReid Kleckner <reid@kleckner.net>
Fri, 22 Aug 2014 16:52:57 +0000 (16:52 +0000)
committerReid Kleckner <reid@kleckner.net>
Fri, 22 Aug 2014 16:52:57 +0000 (16:52 +0000)
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

include/clang/Basic/TokenKinds.def
test/Parser/MicrosoftExtensions.cpp

index 5d088336dfe26ab65d67ab389cc57c9d54d2c517..5c49bcfd52437f5685bae25eb599e26e81fc7b1a 100644 (file)
@@ -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)
index 0174ec2f292def7b8a86d7a8d4865b3cd98b8a1f..ee530b8669fb02143128ac7143e8fa3472a727ab 100644 (file)
@@ -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;