Index: clang-tidy/ClangTidyDiagnosticConsumer.h =================================================================== --- clang-tidy/ClangTidyDiagnosticConsumer.h +++ clang-tidy/ClangTidyDiagnosticConsumer.h @@ -13,7 +13,6 @@ #include "clang/Basic/Diagnostic.h" #include "clang/Basic/SourceManager.h" #include "clang/Tooling/Refactoring.h" -#include "llvm/ADT/DenseMap.h" namespace clang { @@ -88,10 +87,6 @@ /// This is called from the \c ClangTidyCheck base class. void setSourceManager(SourceManager *SourceMgr); - /// \brief Returns the name of the clang-tidy check which produced this - /// diagnostic ID. - StringRef getCheckName(unsigned DiagnosticID) const; - private: friend class ClangTidyDiagnosticConsumer; // Calls storeError(). @@ -100,7 +95,6 @@ SmallVectorImpl *Errors; DiagnosticsEngine *DiagEngine; - llvm::DenseMap CheckNamesByDiagnosticID; }; /// \brief A diagnostic consumer that turns each \c Diagnostic into a Index: clang-tidy/ClangTidyDiagnosticConsumer.cpp =================================================================== --- clang-tidy/ClangTidyDiagnosticConsumer.cpp +++ clang-tidy/ClangTidyDiagnosticConsumer.cpp @@ -41,9 +41,7 @@ SourceLocation Loc, StringRef Description) { unsigned ID = DiagEngine->getDiagnosticIDs()->getCustomDiagID( - DiagnosticIDs::Warning, Description); - if (CheckNamesByDiagnosticID.count(ID) == 0) - CheckNamesByDiagnosticID.insert(std::make_pair(ID, CheckName.str())); + DiagnosticIDs::Warning, Description, CheckName); return DiagEngine->Report(Loc, ID); } @@ -60,14 +58,6 @@ Errors->push_back(Error); } -StringRef ClangTidyContext::getCheckName(unsigned DiagnosticID) const { - llvm::DenseMap::const_iterator I = - CheckNamesByDiagnosticID.find(DiagnosticID); - if (I != CheckNamesByDiagnosticID.end()) - return I->second; - return ""; -} - ClangTidyDiagnosticConsumer::ClangTidyDiagnosticConsumer(ClangTidyContext &Ctx) : Context(Ctx) { IntrusiveRefCntPtr DiagOpts = new DiagnosticOptions(); @@ -82,11 +72,12 @@ // FIXME: Demultiplex diagnostics. // FIXME: Ensure that we don't get notes from user code related to errors // from non-user code. - if (Diags->getSourceManager().isInSystemHeader(Info.getLocation())) + if (Info.getDiags()->getSourceManager().isInSystemHeader(Info.getLocation())) return; if (DiagLevel != DiagnosticsEngine::Note) { - Errors.push_back( - ClangTidyError(Context.getCheckName(Info.getID()), getMessage(Info))); + Errors.push_back(ClangTidyError( + Info.getDiags()->getDiagnosticIDs()->getWarningOption(Info.getID()), + getMessage(Info))); } else { assert(!Errors.empty() && "A diagnostic note can only be appended to a message.");