[clang] [clang] Do not compute typo-correction suggestions for disabled diagnostics (PR #209694)

Corentin Jabot via cfe-commits cfe-commits at lists.llvm.org
Wed Jul 15 02:22:25 PDT 2026


================
@@ -514,6 +515,20 @@ void Preprocessor::SuggestTypoedDirective(const Token &Tok,
   // directives.
   if (getLangOpts().AsmPreprocessor) return;
 
+  // A known non-conditional directive (e.g. #include or #define inside a
+  // skipped conditional block) is not a typo of a conditional don't scan
+  // it. #elifdef/#elifndef stay eligible so that pre-C23/C++23 code still
+  // gets the "did you mean #elif" suggestion.
+  if (tok::PPKeywordKind K = getIdentifierInfo(Directive)->getPPKeywordID();
+      K != tok::pp_not_keyword && K != tok::pp_elifdef && K != tok::pp_elifndef)
+    return;
----------------
cor3ntin wrote:

This does not look correct. the point of fixing typos is that if someone types `endll` for example`, we can detect it.

https://github.com/llvm/llvm-project/pull/209694


More information about the cfe-commits mailing list