diff options
-rw-r--r-- | clang-tidy/fuchsia/MultipleInheritanceCheck.cpp | 3 | ||||
-rw-r--r-- | test/clang-tidy/fuchsia-multiple-inheritance.cpp | 3 |
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 {}; |