summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHaojian Wu <hokein@google.com>2016-06-07 08:55:38 +0000
committerHaojian Wu <hokein@google.com>2016-06-07 08:55:38 +0000
commitba992cf3defd54169d65bf1436c185bfc1bb402a (patch)
tree167ab183576e82fe16ee448ac8c64ab321fe2646
parent91e3ac82939175c7e7159078e47a60bc6cabdb48 (diff)
downloadbcm5719-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.cpp14
-rw-r--r--clang-tools-extra/test/clang-tidy/misc-definitions-in-headers.hpp2
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;
OpenPOWER on IntegriCloud