summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clang-tidy/fuchsia/MultipleInheritanceCheck.cpp3
-rw-r--r--test/clang-tidy/fuchsia-multiple-inheritance.cpp3
2 files changed, 5 insertions, 1 deletions
diff --git a/clang-tidy/fuchsia/MultipleInheritanceCheck.cpp b/clang-tidy/fuchsia/MultipleInheritanceCheck.cpp
index a5f9d6ed..404b4bed 100644
--- a/clang-tidy/fuchsia/MultipleInheritanceCheck.cpp
+++ b/clang-tidy/fuchsia/MultipleInheritanceCheck.cpp
@@ -93,7 +93,8 @@ void MultipleInheritanceCheck::registerMatchers(MatchFinder *Finder) {
return;
// Match declarations which have bases.
- Finder->addMatcher(cxxRecordDecl(hasBases()).bind("decl"), this);
+ Finder->addMatcher(
+ cxxRecordDecl(allOf(hasBases(), isDefinition())).bind("decl"), this);
}
void MultipleInheritanceCheck::check(const MatchFinder::MatchResult &Result) {
diff --git a/test/clang-tidy/fuchsia-multiple-inheritance.cpp b/test/clang-tidy/fuchsia-multiple-inheritance.cpp
index fd2ed145..c7869761 100644
--- a/test/clang-tidy/fuchsia-multiple-inheritance.cpp
+++ b/test/clang-tidy/fuchsia-multiple-inheritance.cpp
@@ -41,6 +41,9 @@ public:
virtual int baz() = 0;
};
+// Shouldn't warn on forward declarations.
+class Bad_Child1;
+
// Inherits from multiple concrete classes.
// CHECK-MESSAGES: [[@LINE+2]]:1: warning: inheriting mulitple classes that aren't pure virtual is discouraged [fuchsia-multiple-inheritance]
// CHECK-NEXT: class Bad_Child1 : public Base_A, Base_B {};