This revision was automatically updated to reflect the committed changes. Closed by commit rGd61ad660503d: [Analyzer][WebKit] Check record definition is available in NoUncountedMembers… (authored by jkorous). Herald added a project: clang. Herald added a subscriber: cfe-commits.
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D81017/new/ https://reviews.llvm.org/D81017 Files: clang/lib/StaticAnalyzer/Checkers/WebKit/NoUncountedMembersChecker.cpp clang/test/Analysis/Checkers/WebKit/uncounted-members-regression-46142.cpp Index: clang/test/Analysis/Checkers/WebKit/uncounted-members-regression-46142.cpp =================================================================== --- /dev/null +++ clang/test/Analysis/Checkers/WebKit/uncounted-members-regression-46142.cpp @@ -0,0 +1,9 @@ +// regression test for https://bugs.llvm.org/show_bug.cgi?id=46142 + +// RUN: %clang_analyze_cc1 -analyzer-checker=webkit.WebKitNoUncountedMemberChecker -verify %s +// expected-no-diagnostics + +class ClassWithoutADefinition; +class Foo { + const ClassWithoutADefinition *foo; +}; Index: clang/lib/StaticAnalyzer/Checkers/WebKit/NoUncountedMembersChecker.cpp =================================================================== --- clang/lib/StaticAnalyzer/Checkers/WebKit/NoUncountedMembersChecker.cpp +++ clang/lib/StaticAnalyzer/Checkers/WebKit/NoUncountedMembersChecker.cpp @@ -75,7 +75,8 @@ continue; if (auto *MemberCXXRD = MemberType->getPointeeCXXRecordDecl()) { - if (isRefCountable(MemberCXXRD)) + // If we don't see the definition we just don't know. + if (MemberCXXRD->hasDefinition() && isRefCountable(MemberCXXRD)) reportBug(Member, MemberType, MemberCXXRD, RD); } }
Index: clang/test/Analysis/Checkers/WebKit/uncounted-members-regression-46142.cpp =================================================================== --- /dev/null +++ clang/test/Analysis/Checkers/WebKit/uncounted-members-regression-46142.cpp @@ -0,0 +1,9 @@ +// regression test for https://bugs.llvm.org/show_bug.cgi?id=46142 + +// RUN: %clang_analyze_cc1 -analyzer-checker=webkit.WebKitNoUncountedMemberChecker -verify %s +// expected-no-diagnostics + +class ClassWithoutADefinition; +class Foo { + const ClassWithoutADefinition *foo; +}; Index: clang/lib/StaticAnalyzer/Checkers/WebKit/NoUncountedMembersChecker.cpp =================================================================== --- clang/lib/StaticAnalyzer/Checkers/WebKit/NoUncountedMembersChecker.cpp +++ clang/lib/StaticAnalyzer/Checkers/WebKit/NoUncountedMembersChecker.cpp @@ -75,7 +75,8 @@ continue; if (auto *MemberCXXRD = MemberType->getPointeeCXXRecordDecl()) { - if (isRefCountable(MemberCXXRD)) + // If we don't see the definition we just don't know. + if (MemberCXXRD->hasDefinition() && isRefCountable(MemberCXXRD)) reportBug(Member, MemberType, MemberCXXRD, RD); } }
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits