[clang] 5791e28 - Complete the list of single-underscore keywords for MSVC compat.

Eli Friedman via cfe-commits cfe-commits at lists.llvm.org
Tue Mar 15 12:02:48 PDT 2022


Author: Eli Friedman
Date: 2022-03-15T11:58:40-07:00
New Revision: 5791e28f30168a5a930c1f869529b03b95405afe

URL: https://github.com/llvm/llvm-project/commit/5791e28f30168a5a930c1f869529b03b95405afe
DIFF: https://github.com/llvm/llvm-project/commit/5791e28f30168a5a930c1f869529b03b95405afe.diff

LOG: Complete the list of single-underscore keywords for MSVC compat.

List derived from https://docs.microsoft.com/en-us/cpp/cpp/keywords-cpp
. Not that this is something we really want to encourage, but some of
these show up in practice, so I figured I should just complete the list.

Differential Revision: https://reviews.llvm.org/D121412

Added: 
    

Modified: 
    clang/include/clang/Basic/TokenKinds.def

Removed: 
    


################################################################################
diff  --git a/clang/include/clang/Basic/TokenKinds.def b/clang/include/clang/Basic/TokenKinds.def
index b9d5cd76d51d6..1d2082717bf97 100644
--- a/clang/include/clang/Basic/TokenKinds.def
+++ b/clang/include/clang/Basic/TokenKinds.def
@@ -676,24 +676,39 @@ 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)
 ALIAS("__builtin_alignof", __alignof  , KEYMS)
-ALIAS("_cdecl"           , __cdecl    , KEYMS | KEYBORLAND)
-ALIAS("_fastcall"        , __fastcall , KEYMS | KEYBORLAND)
-ALIAS("_stdcall"         , __stdcall  , KEYMS | KEYBORLAND)
-ALIAS("_thiscall"        , __thiscall , KEYMS)
-ALIAS("_vectorcall"      , __vectorcall, KEYMS)
-ALIAS("_uuidof"          , __uuidof   , KEYMS | KEYBORLAND)
-ALIAS("_inline"          , inline     , KEYMS)
-ALIAS("_declspec"        , __declspec , KEYMS)
+
+// Microsoft single-underscore prefixed aliases for double-underscore prefixed
+// keywords.
+ALIAS("_asm"             , asm          , KEYMS)
+ALIAS("_alignof"         , __alignof    , KEYMS)
+ALIAS("_cdecl"           , __cdecl      , KEYMS | KEYBORLAND)
+ALIAS("_declspec"        , __declspec   , KEYMS)
+ALIAS("_fastcall"        , __fastcall   , KEYMS | KEYBORLAND)
+ALIAS("_finally"         , __finally    , KEYMSCOMPAT)
+ALIAS("_forceinline"     , __forceinline, KEYMSCOMPAT)
+ALIAS("_inline"          , inline       , KEYMS)
+ALIAS("_int8"            , char         , KEYMS)
+ALIAS("_int16"           , short        , KEYMS)
+ALIAS("_int32"           , int          , KEYMS)
+ALIAS("_int64"           , __int64      , KEYMS)
+ALIAS("_leave"           , __leave      , KEYMSCOMPAT)
+ALIAS("_multiple_inheritance", __multiple_inheritance, KEYMSCOMPAT)
+ALIAS("_ptr32"           , __ptr32      , KEYMSCOMPAT)
+ALIAS("_ptr64"           , __ptr64      , KEYMSCOMPAT)
+ALIAS("_restrict"        , restrict     , KEYMSCOMPAT)
+ALIAS("_stdcall"         , __stdcall    , KEYMS | KEYBORLAND)
+ALIAS("_thiscall"        , __thiscall   , KEYMS)
+ALIAS("_try"             , __try        , KEYMSCOMPAT)
+ALIAS("_vectorcall"      , __vectorcall , KEYMS)
+ALIAS("_unaligned"       , __unaligned  , KEYMSCOMPAT)
+ALIAS("_uptr"            , __uptr       , KEYMSCOMPAT)
+ALIAS("_uuidof"          , __uuidof     , KEYMS | KEYBORLAND)
+ALIAS("_virtual_inheritance", __virtual_inheritance, KEYMSCOMPAT)
+ALIAS("_w64"             , __w64        , KEYMSCOMPAT)
 
 // Borland Extensions which should be disabled in strict conformance mode.
 ALIAS("_pascal"      , __pascal   , KEYBORLAND)


        


More information about the cfe-commits mailing list