Author: Cyrus Ding Date: 2026-07-03T15:57:35+02:00 New Revision: c87a57fcce04d38e23ec5c16ef9b80a4cfbb1c3c
URL: https://github.com/llvm/llvm-project/commit/c87a57fcce04d38e23ec5c16ef9b80a4cfbb1c3c DIFF: https://github.com/llvm/llvm-project/commit/c87a57fcce04d38e23ec5c16ef9b80a4cfbb1c3c.diff LOG: [Clang] Remove unused TokenKey::KEYNOZOS (#207132) [Clang] Remove unused TokenKey::KEYNOZOS KEYNOZOS was defined as a TokenKey flag to mark keywords not supported on z/OS, but no keyword in TokenKinds.def actually uses it. This patch removes the unused enum value and its associated handling code. Build: `ninja clang` succeeded (2923/2923 targets). Tests: `ninja check-clang` passed — 51180 passed, 0 failed. AI assistance was used for code review analysis and CI failure debugging. Fixes #206877 Co-authored-by: Chenguang Ding <[email protected]> Added: Modified: clang/include/clang/Basic/IdentifierTable.h clang/lib/Basic/IdentifierTable.cpp Removed: ################################################################################ diff --git a/clang/include/clang/Basic/IdentifierTable.h b/clang/include/clang/Basic/IdentifierTable.h index 9e80c3fb7079d..d0640ee34de75 100644 --- a/clang/include/clang/Basic/IdentifierTable.h +++ b/clang/include/clang/Basic/IdentifierTable.h @@ -74,15 +74,20 @@ enum TokenKey : unsigned { KEYSYCL = 0x800000, KEYCUDA = 0x1000000, KEYZOS = 0x2000000, - KEYNOZOS = 0x4000000, + // 0x4000000 was KEYNOZOS, which was unused. The value is kept reserved + // so that KEYALL's bit-mask computation remains correct: keywords like + // 'volatile' (KEYALL|KEYNOHLSL) go through the per-bit loop in + // getKeywordStatus, and every bit set in KEYALL must map to a valid + // TokenKey with a handler in getKeywordStatusHelper. KEYHLSL = 0x8000000, KEYFIXEDPOINT = 0x10000000, KEYDEFERTS = 0x20000000, KEYNOHLSL = 0x40000000, KEYMAX = KEYNOHLSL, // The maximum key KEYALLCXX = KEYCXX | KEYCXX11 | KEYCXX20, - KEYALL = (KEYMAX | (KEYMAX - 1)) & ~KEYNOMS18 & ~KEYNOOPENCL & ~KEYNOZOS & - ~KEYNOHLSL // KEYNOMS18, KEYNOOPENCL, KEYNOZOS, KEYNOHLSL excluded. + KEYALL = (KEYMAX | (KEYMAX - 1)) & ~KEYNOMS18 & ~KEYNOOPENCL & ~0x4000000u & + ~KEYNOHLSL // KEYNOMS18, KEYNOOPENCL, 0x4000000 (reserved), + // KEYNOHLSL excluded. }; /// How a keyword is treated in the selected standard. This enum is ordered diff --git a/clang/lib/Basic/IdentifierTable.cpp b/clang/lib/Basic/IdentifierTable.cpp index a2e9316e4e372..68cd02a623351 100644 --- a/clang/lib/Basic/IdentifierTable.cpp +++ b/clang/lib/Basic/IdentifierTable.cpp @@ -159,7 +159,6 @@ static KeywordStatus getKeywordStatusHelper(const LangOptions &LangOpts, return LangOpts.CPlusPlus ? KS_Unknown : KS_Enabled; case KEYNOOPENCL: case KEYNOMS18: - case KEYNOZOS: case KEYNOHLSL: // The disable behavior for this is handled in getKeywordStatus. return KS_Unknown; @@ -184,8 +183,6 @@ KeywordStatus clang::getKeywordStatus(const LangOptions &LangOpts, if (LangOpts.MSVCCompat && (Flags & KEYNOMS18) && !LangOpts.isCompatibleWithMSVC(LangOptions::MSVC2015)) return KS_Disabled; - if (LangOpts.ZOSExt && (Flags & KEYNOZOS)) - return KS_Disabled; KeywordStatus CurStatus = KS_Unknown; while (Flags != 0) { _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
