Author: Jan Korous Date: 2020-06-04T15:57:19-07:00 New Revision: a95c08db122ef33576cd8f35094afcd1ea668d68
URL: https://github.com/llvm/llvm-project/commit/a95c08db122ef33576cd8f35094afcd1ea668d68 DIFF: https://github.com/llvm/llvm-project/commit/a95c08db122ef33576cd8f35094afcd1ea668d68.diff LOG: [Analyzer][NoUncountedMembersChecker] Fix crash for C structs Fixes https://bugs.llvm.org/show_bug.cgi?id=46177 Fixes second bug reported in https://bugs.llvm.org/show_bug.cgi?id=46142 Added: Modified: clang/lib/StaticAnalyzer/Checkers/WebKit/NoUncountedMembersChecker.cpp Removed: ################################################################################ diff --git a/clang/lib/StaticAnalyzer/Checkers/WebKit/NoUncountedMembersChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/WebKit/NoUncountedMembersChecker.cpp index db53db1587d5..2deefab96255 100644 --- a/clang/lib/StaticAnalyzer/Checkers/WebKit/NoUncountedMembersChecker.cpp +++ b/clang/lib/StaticAnalyzer/Checkers/WebKit/NoUncountedMembersChecker.cpp @@ -109,7 +109,11 @@ class NoUncountedMemberChecker // Ref-counted smartpointers actually have raw-pointer to uncounted type as // a member but we trust them to handle it correctly. - return isRefCounted(llvm::dyn_cast_or_null<CXXRecordDecl>(RD)); + auto CXXRD = llvm::dyn_cast_or_null<CXXRecordDecl>(RD); + if (CXXRD) + return isRefCounted(CXXRD); + + return false; } void reportBug(const FieldDecl *Member, const Type *MemberType, _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits