[clang-tidy] Exclude forward decls from fuchsia-multiple-inheritance

Addresses b39770.

Differential Revision: https://reviews.llvm.org/D64813

llvm-svn: 366354
This commit is contained in:
Julie Hockett 2019-07-17 17:40:53 +00:00
parent b53e13cd43
commit 337aea438c
2 changed files with 5 additions and 1 deletions

View File

@ -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) {

View File

@ -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 {};