Author: alexfh Date: Wed May 17 09:39:47 2017 New Revision: 303264 URL: http://llvm.org/viewvc/llvm-project?rev=303264&view=rev Log: Change getChecksFilter() interface to hide implementation details.
Modified: clang-tools-extra/trunk/clang-tidy/ClangTidy.cpp clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.cpp clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.h clang-tools-extra/trunk/clang-tidy/ClangTidyModule.cpp Modified: clang-tools-extra/trunk/clang-tidy/ClangTidy.cpp URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/ClangTidy.cpp?rev=303264&r1=303263&r2=303264&view=diff ============================================================================== --- clang-tools-extra/trunk/clang-tidy/ClangTidy.cpp (original) +++ clang-tools-extra/trunk/clang-tidy/ClangTidy.cpp Wed May 17 09:39:47 2017 @@ -302,7 +302,7 @@ static void setStaticAnalyzerCheckerOpts typedef std::vector<std::pair<std::string, bool>> CheckersList; -static CheckersList getCheckersControlList(GlobList &Filter) { +static CheckersList getCheckersControlList(ClangTidyContext &Context) { CheckersList List; const auto &RegisteredCheckers = @@ -310,7 +310,7 @@ static CheckersList getCheckersControlLi bool AnalyzerChecksEnabled = false; for (StringRef CheckName : RegisteredCheckers) { std::string ClangTidyCheckName((AnalyzerCheckNamePrefix + CheckName).str()); - AnalyzerChecksEnabled |= Filter.contains(ClangTidyCheckName); + AnalyzerChecksEnabled |= Context.isCheckEnabled(ClangTidyCheckName); } if (!AnalyzerChecksEnabled) @@ -324,8 +324,10 @@ static CheckersList getCheckersControlLi for (StringRef CheckName : RegisteredCheckers) { std::string ClangTidyCheckName((AnalyzerCheckNamePrefix + CheckName).str()); - if (CheckName.startswith("core") || Filter.contains(ClangTidyCheckName)) + if (CheckName.startswith("core") || + Context.isCheckEnabled(ClangTidyCheckName)) { List.emplace_back(CheckName, true); + } } return List; } @@ -371,8 +373,7 @@ ClangTidyASTConsumerFactory::CreateASTCo AnalyzerOptions->Config["cfg-temporary-dtors"] = Context.getOptions().AnalyzeTemporaryDtors ? "true" : "false"; - GlobList &Filter = Context.getChecksFilter(); - AnalyzerOptions->CheckersControlList = getCheckersControlList(Filter); + AnalyzerOptions->CheckersControlList = getCheckersControlList(Context); if (!AnalyzerOptions->CheckersControlList.empty()) { setStaticAnalyzerCheckerOpts(Context.getOptions(), AnalyzerOptions); AnalyzerOptions->AnalysisStoreOpt = RegionStoreModel; @@ -391,13 +392,12 @@ ClangTidyASTConsumerFactory::CreateASTCo std::vector<std::string> ClangTidyASTConsumerFactory::getCheckNames() { std::vector<std::string> CheckNames; - GlobList &Filter = Context.getChecksFilter(); for (const auto &CheckFactory : *CheckFactories) { - if (Filter.contains(CheckFactory.first)) + if (Context.isCheckEnabled(CheckFactory.first)) CheckNames.push_back(CheckFactory.first); } - for (const auto &AnalyzerCheck : getCheckersControlList(Filter)) + for (const auto &AnalyzerCheck : getCheckersControlList(Context)) CheckNames.push_back(AnalyzerCheckNamePrefix + AnalyzerCheck.first); std::sort(CheckNames.begin(), CheckNames.end()); Modified: clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.cpp URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.cpp?rev=303264&r1=303263&r2=303264&view=diff ============================================================================== --- clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.cpp (original) +++ clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.cpp Wed May 17 09:39:47 2017 @@ -214,14 +214,14 @@ ClangTidyOptions ClangTidyContext::getOp void ClangTidyContext::setCheckProfileData(ProfileData *P) { Profile = P; } -GlobList &ClangTidyContext::getChecksFilter() { +bool ClangTidyContext::isCheckEnabled(StringRef CheckName) const { assert(CheckFilter != nullptr); - return *CheckFilter; + return CheckFilter->contains(CheckName); } -GlobList &ClangTidyContext::getWarningAsErrorFilter() { +bool ClangTidyContext::treatAsError(StringRef CheckName) const { assert(WarningAsErrorFilter != nullptr); - return *WarningAsErrorFilter; + return WarningAsErrorFilter->contains(CheckName); } /// \brief Store a \c ClangTidyError. @@ -252,7 +252,7 @@ ClangTidyDiagnosticConsumer::ClangTidyDi void ClangTidyDiagnosticConsumer::finalizeLastError() { if (!Errors.empty()) { ClangTidyError &Error = Errors.back(); - if (!Context.getChecksFilter().contains(Error.DiagnosticName) && + if (!Context.isCheckEnabled(Error.DiagnosticName) && Error.DiagLevel != ClangTidyError::Error) { ++Context.Stats.ErrorsIgnoredCheckFilter; Errors.pop_back(); @@ -384,9 +384,8 @@ void ClangTidyDiagnosticConsumer::Handle LastErrorRelatesToUserCode = true; LastErrorPassesLineFilter = true; } - bool IsWarningAsError = - DiagLevel == DiagnosticsEngine::Warning && - Context.getWarningAsErrorFilter().contains(CheckName); + bool IsWarningAsError = DiagLevel == DiagnosticsEngine::Warning && + Context.treatAsError(CheckName); Errors.emplace_back(CheckName, Level, Context.getCurrentBuildDirectory(), IsWarningAsError); } Modified: clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.h URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.h?rev=303264&r1=303263&r2=303264&view=diff ============================================================================== --- clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.h (original) +++ clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.h Wed May 17 09:39:47 2017 @@ -136,14 +136,14 @@ public: /// diagnostic ID. StringRef getCheckName(unsigned DiagnosticID) const; - /// \brief Returns check filter for the \c CurrentFile. + /// \brief Returns \c true if the check is enabled for the \c CurrentFile. /// /// The \c CurrentFile can be changed using \c setCurrentFile. - GlobList &getChecksFilter(); + bool isCheckEnabled(StringRef CheckName) const; - /// \brief Returns check filter for the \c CurrentFile which - /// selects checks for upgrade to error. - GlobList &getWarningAsErrorFilter(); + /// \brief Returns \c true if the check should be upgraded to error for the + /// \c CurrentFile. + bool treatAsError(StringRef CheckName) const; /// \brief Returns global options. const ClangTidyGlobalOptions &getGlobalOptions() const; Modified: clang-tools-extra/trunk/clang-tidy/ClangTidyModule.cpp URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/ClangTidyModule.cpp?rev=303264&r1=303263&r2=303264&view=diff ============================================================================== --- clang-tools-extra/trunk/clang-tidy/ClangTidyModule.cpp (original) +++ clang-tools-extra/trunk/clang-tidy/ClangTidyModule.cpp Wed May 17 09:39:47 2017 @@ -24,9 +24,8 @@ void ClangTidyCheckFactories::registerCh void ClangTidyCheckFactories::createChecks( ClangTidyContext *Context, std::vector<std::unique_ptr<ClangTidyCheck>> &Checks) { - GlobList &Filter = Context->getChecksFilter(); for (const auto &Factory : Factories) { - if (Filter.contains(Factory.first)) + if (Context->isCheckEnabled(Factory.first)) Checks.emplace_back(Factory.second(Factory.first, Context)); } } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits