diff options
author | David Majnemer <david.majnemer@gmail.com> | 2015-03-18 04:15:23 +0000 |
---|---|---|
committer | David Majnemer <david.majnemer@gmail.com> | 2015-03-18 04:15:23 +0000 |
commit | 28aae9c29b6dd740c4d8da4b7019f2b83bc446b2 (patch) | |
tree | 883872fd80aad04f93722c006426f1efb1f75dfd /clang/lib/Basic/IdentifierTable.cpp | |
parent | 91797559acb50c46c77aa200253caefc6acdd11c (diff) | |
download | llvm-28aae9c29b6dd740c4d8da4b7019f2b83bc446b2.zip llvm-28aae9c29b6dd740c4d8da4b7019f2b83bc446b2.tar.gz llvm-28aae9c29b6dd740c4d8da4b7019f2b83bc446b2.tar.bz2 |
MSVC Compat: Permit char16_t, char32_t and _Atomic when targeting > 2013
We disabled support for _Atomic because the STL had name conflicts,
they've been resolved in 2015. Similarly, reenable char16_t and
char32_t.
llvm-svn: 232611
Diffstat (limited to 'clang/lib/Basic/IdentifierTable.cpp')
-rw-r--r-- | clang/lib/Basic/IdentifierTable.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/clang/lib/Basic/IdentifierTable.cpp b/clang/lib/Basic/IdentifierTable.cpp index 613b43f..db148f4 100644 --- a/clang/lib/Basic/IdentifierTable.cpp +++ b/clang/lib/Basic/IdentifierTable.cpp @@ -105,10 +105,10 @@ namespace { KEYOPENCL = 0x200, KEYC11 = 0x400, KEYARC = 0x800, - KEYNOMS = 0x01000, + KEYNOMS18 = 0x01000, WCHARSUPPORT = 0x02000, HALFSUPPORT = 0x04000, - KEYALL = (0xffff & ~KEYNOMS) // Because KEYNOMS is used to exclude. + KEYALL = (0xffff & ~KEYNOMS18) // Because KEYNOMS18 is used to exclude. }; /// \brief How a keyword is treated in the selected standard. @@ -154,7 +154,8 @@ static void AddKeyword(StringRef Keyword, KeywordStatus AddResult = getKeywordStatus(LangOpts, Flags); // Don't add this keyword under MSVCCompat. - if (LangOpts.MSVCCompat && (Flags & KEYNOMS)) + if (LangOpts.MSVCCompat && (Flags & KEYNOMS18) && + !LangOpts.isCompatibleWithMSVC(19)) return; // Don't add this keyword if disabled in this language. if (AddResult == KS_Disabled) return; |