Author: alexfh Date: Mon May 8 09:17:27 2017 New Revision: 302425 URL: http://llvm.org/viewvc/llvm-project?rev=302425&view=rev Log: [clang-tidy] Ignore private =deleted methods in macros.
modernize-use-equals-delete is extremely noisy in code using DISALLOW_COPY_AND_ASSIGN-style macros and there's no easy way to automatically fix the warning when macros are in play. Modified: clang-tools-extra/trunk/clang-tidy/modernize/UseEqualsDeleteCheck.cpp clang-tools-extra/trunk/test/clang-tidy/modernize-use-equals-delete.cpp Modified: clang-tools-extra/trunk/clang-tidy/modernize/UseEqualsDeleteCheck.cpp URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/modernize/UseEqualsDeleteCheck.cpp?rev=302425&r1=302424&r2=302425&view=diff ============================================================================== --- clang-tools-extra/trunk/clang-tidy/modernize/UseEqualsDeleteCheck.cpp (original) +++ clang-tools-extra/trunk/clang-tidy/modernize/UseEqualsDeleteCheck.cpp Mon May 8 09:17:27 2017 @@ -57,13 +57,18 @@ void UseEqualsDeleteCheck::check(const M SourceLocation EndLoc = Lexer::getLocForEndOfToken( Func->getLocEnd(), 0, *Result.SourceManager, getLangOpts()); - // FIXME: Improve FixItHint to make method public + // FIXME: Improve FixItHint to make the method public. diag(Func->getLocation(), "use '= delete' to prohibit calling of a special member function") << FixItHint::CreateInsertion(EndLoc, " = delete"); } else if (const auto *Func = Result.Nodes.getNodeAs<CXXMethodDecl>(DeletedNotPublic)) { - // FIXME: Add FixItHint to make method public + // Ignore this warning in macros, since it's extremely noisy in code using + // DISALLOW_COPY_AND_ASSIGN-style macros and there's no easy way to + // automatically fix the warning when macros are in play. + if (Func->getLocation().isMacroID()) + return; + // FIXME: Add FixItHint to make the method public. diag(Func->getLocation(), "deleted member function should be public"); } } Modified: clang-tools-extra/trunk/test/clang-tidy/modernize-use-equals-delete.cpp URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/modernize-use-equals-delete.cpp?rev=302425&r1=302424&r2=302425&view=diff ============================================================================== --- clang-tools-extra/trunk/test/clang-tidy/modernize-use-equals-delete.cpp (original) +++ clang-tools-extra/trunk/test/clang-tidy/modernize-use-equals-delete.cpp Mon May 8 09:17:27 2017 @@ -158,3 +158,30 @@ struct PublicDeleted { public: PublicDeleted(const PublicDeleted &) = delete; }; + +#define M1 \ + struct PrivateDeletedMacro { \ + private: \ + PrivateDeletedMacro(const PrivateDeletedMacro &) = delete; \ + }; \ + struct ProtectedDeletedMacro { \ + protected: \ + ProtectedDeletedMacro(const ProtectedDeletedMacro &) = delete; \ + } + +M1; + +#define DISALLOW_COPY_AND_ASSIGN(name) \ + name(const name &) = delete; \ + void operator=(const name &) = delete + +struct PrivateDeletedMacro2 { +private: + DISALLOW_COPY_AND_ASSIGN(PrivateDeletedMacro2); +}; + +struct ProtectedDeletedMacro2 { +protected: + DISALLOW_COPY_AND_ASSIGN(ProtectedDeletedMacro2); +}; + _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits