[clang] bf6db18 - Fix char8_t in C mode regression from fb65b179

Erich Keane via cfe-commits cfe-commits at lists.llvm.org
Wed Aug 3 07:15:39 PDT 2022


Author: Erich Keane
Date: 2022-08-03T07:15:30-07:00
New Revision: bf6db18e52815475baebff2c330763fedac6b5e4

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

LOG: Fix char8_t in C mode regression from fb65b179

When doing that NFC refactor, I'd messed up how char8_t was reported,
which resulted in it being considered a 'future' keyword, without the
corresponding diagnostic, which lead to an assert.  This patch corrects
the char8_t to ONLY be future in C++ mode.

Added: 
    

Modified: 
    clang/lib/Basic/IdentifierTable.cpp

Removed: 
    


################################################################################
diff  --git a/clang/lib/Basic/IdentifierTable.cpp b/clang/lib/Basic/IdentifierTable.cpp
index 4bf9e12af83c..06f0850430f2 100644
--- a/clang/lib/Basic/IdentifierTable.cpp
+++ b/clang/lib/Basic/IdentifierTable.cpp
@@ -179,7 +179,8 @@ static KeywordStatus getKeywordStatusHelper(const LangOptions &LangOpts,
   case CHAR8SUPPORT:
     if (LangOpts.Char8) return KS_Enabled;
     if (LangOpts.CPlusPlus20) return KS_Unknown;
-    return KS_Future;
+    if (LangOpts.CPlusPlus) return KS_Future;
+    return KS_Unknown;
   case KEYOBJC:
     // We treat bridge casts as objective-C keywords so we can warn on them
     // in non-arc mode.


        


More information about the cfe-commits mailing list