diff --git a/clang-tools-extra/clang-tidy/ClangTidy.cpp b/clang-tools-extra/clang-tidy/ClangTidy.cpp index f65e8ed216f2c..88ba4bf63e09f 100644 --- a/clang-tools-extra/clang-tidy/ClangTidy.cpp +++ b/clang-tools-extra/clang-tidy/ClangTidy.cpp @@ -393,6 +393,10 @@ ClangTidyASTConsumerFactory::CreateASTConsumer( std::vector> Checks = CheckFactories->createChecks(&Context); + llvm::erase_if(Checks, [&](std::unique_ptr &Check) { + return !Check->isLanguageVersionSupported(Context.getLangOpts()); + }); + ast_matchers::MatchFinder::MatchFinderOptions FinderOptions; std::unique_ptr Profiling; @@ -416,8 +420,6 @@ ClangTidyASTConsumerFactory::CreateASTConsumer( } for (auto &Check : Checks) { - if (!Check->isLanguageVersionSupported(Context.getLangOpts())) - continue; Check->registerMatchers(&*Finder); Check->registerPPCallbacks(*SM, PP, ModuleExpanderPP); }