|
@@ -114,7 +114,9 @@ namespace {
|
|
|
KEYZVECTOR = 0x40000,
|
|
|
KEYCOROUTINES = 0x80000,
|
|
|
KEYMODULES = 0x100000,
|
|
|
- KEYALL = (0x1fffff & ~KEYNOMS18 &
|
|
|
+ KEYCXX2A = 0x200000,
|
|
|
+ KEYALLCXX = KEYCXX | KEYCXX11 | KEYCXX2A,
|
|
|
+ KEYALL = (0x3fffff & ~KEYNOMS18 &
|
|
|
~KEYNOOPENCL) // KEYNOMS18 and KEYNOOPENCL are used to exclude.
|
|
|
};
|
|
|
|
|
@@ -134,6 +136,7 @@ static KeywordStatus getKeywordStatus(const LangOptions &LangOpts,
|
|
|
if (Flags == KEYALL) return KS_Enabled;
|
|
|
if (LangOpts.CPlusPlus && (Flags & KEYCXX)) return KS_Enabled;
|
|
|
if (LangOpts.CPlusPlus11 && (Flags & KEYCXX11)) return KS_Enabled;
|
|
|
+ if (LangOpts.CPlusPlus2a && (Flags & KEYCXX2A)) return KS_Enabled;
|
|
|
if (LangOpts.C99 && (Flags & KEYC99)) return KS_Enabled;
|
|
|
if (LangOpts.GNUKeywords && (Flags & KEYGNU)) return KS_Extension;
|
|
|
if (LangOpts.MicrosoftExt && (Flags & KEYMS)) return KS_Extension;
|
|
@@ -152,7 +155,7 @@ static KeywordStatus getKeywordStatus(const LangOptions &LangOpts,
|
|
|
if (LangOpts.ConceptsTS && (Flags & KEYCONCEPTS)) return KS_Enabled;
|
|
|
if (LangOpts.CoroutinesTS && (Flags & KEYCOROUTINES)) return KS_Enabled;
|
|
|
if (LangOpts.ModulesTS && (Flags & KEYMODULES)) return KS_Enabled;
|
|
|
- if (LangOpts.CPlusPlus && (Flags & KEYCXX11)) return KS_Future;
|
|
|
+ if (LangOpts.CPlusPlus && (Flags & KEYALLCXX)) return KS_Future;
|
|
|
return KS_Disabled;
|
|
|
}
|
|
|
|
|
@@ -264,6 +267,7 @@ bool IdentifierInfo::isCPlusPlusKeyword(const LangOptions &LangOpts) const {
|
|
|
LangOptions LangOptsNoCPP = LangOpts;
|
|
|
LangOptsNoCPP.CPlusPlus = false;
|
|
|
LangOptsNoCPP.CPlusPlus11 = false;
|
|
|
+ LangOptsNoCPP.CPlusPlus2a = false;
|
|
|
return !isKeyword(LangOptsNoCPP);
|
|
|
}
|
|
|
|