================
@@ -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
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to