diff options
author | Haojian Wu <hokein@google.com> | 2016-06-07 08:55:38 +0000 |
---|---|---|
committer | Haojian Wu <hokein@google.com> | 2016-06-07 08:55:38 +0000 |
commit | ba992cf3defd54169d65bf1436c185bfc1bb402a (patch) | |
tree | 167ab183576e82fe16ee448ac8c64ab321fe2646 | |
parent | 91e3ac82939175c7e7159078e47a60bc6cabdb48 (diff) | |
download | bcm5719-llvm-ba992cf3defd54169d65bf1436c185bfc1bb402a.tar.gz bcm5719-llvm-ba992cf3defd54169d65bf1436c185bfc1bb402a.zip |
[clang-tidy] Ignore the deleted function in misc-definitions-in-headers.
Reviewers: alexfh
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D21059
llvm-svn: 271991
-rw-r--r-- | clang-tools-extra/clang-tidy/misc/DefinitionsInHeadersCheck.cpp | 14 | ||||
-rw-r--r-- | clang-tools-extra/test/clang-tidy/misc-definitions-in-headers.hpp | 2 |
2 files changed, 10 insertions, 6 deletions
diff --git a/clang-tools-extra/clang-tidy/misc/DefinitionsInHeadersCheck.cpp b/clang-tools-extra/clang-tidy/misc/DefinitionsInHeadersCheck.cpp index 1ee97576c7a..e91cc9573f7 100644 --- a/clang-tools-extra/clang-tidy/misc/DefinitionsInHeadersCheck.cpp +++ b/clang-tools-extra/clang-tidy/misc/DefinitionsInHeadersCheck.cpp @@ -53,15 +53,17 @@ void DefinitionsInHeadersCheck::storeOptions( void DefinitionsInHeadersCheck::registerMatchers(MatchFinder *Finder) { if (!getLangOpts().CPlusPlus) return; + auto DefinitionMatcher = + anyOf(functionDecl(isDefinition(), unless(isDeleted())), + varDecl(isDefinition())); if (UseHeaderFileExtension) { - Finder->addMatcher( - namedDecl(anyOf(functionDecl(isDefinition()), varDecl(isDefinition())), - usesHeaderFileExtension(HeaderFileExtensions)) - .bind("name-decl"), - this); + Finder->addMatcher(namedDecl(DefinitionMatcher, + usesHeaderFileExtension(HeaderFileExtensions)) + .bind("name-decl"), + this); } else { Finder->addMatcher( - namedDecl(anyOf(functionDecl(isDefinition()), varDecl(isDefinition())), + namedDecl(DefinitionMatcher, anyOf(usesHeaderFileExtension(HeaderFileExtensions), unless(isExpansionInMainFile()))) .bind("name-decl"), diff --git a/clang-tools-extra/test/clang-tidy/misc-definitions-in-headers.hpp b/clang-tools-extra/test/clang-tidy/misc-definitions-in-headers.hpp index ab68c3363c8..9a383e16316 100644 --- a/clang-tools-extra/test/clang-tidy/misc-definitions-in-headers.hpp +++ b/clang-tools-extra/test/clang-tidy/misc-definitions-in-headers.hpp @@ -103,6 +103,8 @@ namespace { // CHECK-MESSAGES: :[[@LINE-1]]:7: warning: function 'f7' defined in a header file; } +int f8() = delete; // OK: the function being marked delete is not callable. + int a = 1; // CHECK-MESSAGES: :[[@LINE-1]]:5: warning: variable 'a' defined in a header file; variable definitions in header files can lead to ODR violations [misc-definitions-in-headers] CA a1; |