Author: hokein Date: Tue Mar 12 09:11:46 2019 New Revision: 355934 URL: http://llvm.org/viewvc/llvm-project?rev=355934&view=rev Log: [clang-tidy] NOLINT support for "clang-diagnostic-*".
Reviewers: alexfh, aaron.ballman Reviewed By: alexfh Subscribers: xazax.hun, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D59255 Modified: clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.cpp clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.h clang-tools-extra/trunk/test/clang-tidy/nolint.cpp 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=355934&r1=355933&r2=355934&view=diff ============================================================================== --- clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.cpp (original) +++ clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.cpp Tue Mar 12 09:11:46 2019 @@ -254,7 +254,11 @@ bool ClangTidyContext::treatAsError(Stri return WarningAsErrorFilter->contains(CheckName); } -StringRef ClangTidyContext::getCheckName(unsigned DiagnosticID) const { +std::string ClangTidyContext::getCheckName(unsigned DiagnosticID) const { + std::string ClangWarningOption = + DiagEngine->getDiagnosticIDs()->getWarningOptionForDiag(DiagnosticID); + if (!ClangWarningOption.empty()) + return "clang-diagnostic-" + ClangWarningOption; llvm::DenseMap<unsigned, std::string>::const_iterator I = CheckNamesByDiagnosticID.find(DiagnosticID); if (I != CheckNamesByDiagnosticID.end()) @@ -305,7 +309,7 @@ static bool IsNOLINTFound(StringRef Noli Line.substr(BracketIndex, BracketEndIndex - BracketIndex); // Allow disabling all the checks with "*". if (ChecksStr != "*") { - StringRef CheckName = Context.getCheckName(DiagID); + std::string CheckName = Context.getCheckName(DiagID); // Allow specifying a few check names, delimited with comma. SmallVector<StringRef, 1> Checks; ChecksStr.split(Checks, ',', -1, false); @@ -402,13 +406,7 @@ void ClangTidyDiagnosticConsumer::Handle "A diagnostic note can only be appended to a message."); } else { finalizeLastError(); - StringRef WarningOption = - Context.DiagEngine->getDiagnosticIDs()->getWarningOptionForDiag( - Info.getID()); - std::string CheckName = !WarningOption.empty() - ? ("clang-diagnostic-" + WarningOption).str() - : Context.getCheckName(Info.getID()).str(); - + std::string CheckName = Context.getCheckName(Info.getID()); if (CheckName.empty()) { // This is a compiler diagnostic without a warning option. Assign check // name based on its level. 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=355934&r1=355933&r2=355934&view=diff ============================================================================== --- clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.h (original) +++ clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.h Tue Mar 12 09:11:46 2019 @@ -138,7 +138,7 @@ public: /// \brief Returns the name of the clang-tidy check which produced this /// diagnostic ID. - StringRef getCheckName(unsigned DiagnosticID) const; + std::string getCheckName(unsigned DiagnosticID) const; /// \brief Returns \c true if the check is enabled for the \c CurrentFile. /// Modified: clang-tools-extra/trunk/test/clang-tidy/nolint.cpp URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/nolint.cpp?rev=355934&r1=355933&r2=355934&view=diff ============================================================================== --- clang-tools-extra/trunk/test/clang-tidy/nolint.cpp (original) +++ clang-tools-extra/trunk/test/clang-tidy/nolint.cpp Tue Mar 12 09:11:46 2019 @@ -31,6 +31,7 @@ void f() { int i; // CHECK-MESSAGES: :[[@LINE-1]]:7: warning: unused variable 'i' [clang-diagnostic-unused-variable] int j; // NOLINT + int k; // NOLINT(clang-diagnostic-unused-variable) } #define MACRO(X) class X { X(int i); }; @@ -47,4 +48,4 @@ MACRO_NOLINT #define DOUBLE_MACRO MACRO(H) // NOLINT DOUBLE_MACRO -// CHECK-MESSAGES: Suppressed 12 warnings (12 NOLINT) +// CHECK-MESSAGES: Suppressed 13 warnings (13 NOLINT) _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits