[clang-tools-extra] [clang-tidy] Avoid processing declarations in system headers (PR #128150)

Congcong Cai via cfe-commits cfe-commits at lists.llvm.org
Sat Feb 22 06:09:41 PST 2025


Carlos =?utf-8?q?Gálvez?= <carlos.galvez at zenseact.com>,
Carlos =?utf-8?q?Gálvez?= <carlos.galvez at zenseact.com>
Message-ID:
In-Reply-To: <llvm.org/llvm/llvm-project/pull/128150 at github.com>


================
@@ -449,6 +479,10 @@ ClangTidyASTConsumerFactory::createASTConsumer(
   }
 
   std::vector<std::unique_ptr<ASTConsumer>> Consumers;
+
+  if (!Context.getOptions().SystemHeaders.value_or(false))
+    Consumers.push_back(std::make_unique<IgnoreSystemHeadersConsumer>());
+
   if (!Checks.empty())
     Consumers.push_back(Finder->newASTConsumer());
----------------
HerrCai0907 wrote:

I prefer to do like this
```c++
if (!Checks.empty())
  if (!Context.getOptions().SystemHeaders.value_or(false))
    Consumers.push_back(std::make_unique<IgnoreSystemHeadersConsumer>(Finder->newASTConsumer()));
  else
    Consumers.push_back(Finder->newASTConsumer());
```
IgnoreSystemHeadersConsumer will skip all top level decl in system header

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


More information about the cfe-commits mailing list