aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Basic/IdentifierTable.cpp
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2015-03-18 04:15:23 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2015-03-18 04:15:23 +0000
commit28aae9c29b6dd740c4d8da4b7019f2b83bc446b2 (patch)
tree883872fd80aad04f93722c006426f1efb1f75dfd /clang/lib/Basic/IdentifierTable.cpp
parent91797559acb50c46c77aa200253caefc6acdd11c (diff)
downloadllvm-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.cpp7
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;