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

Reply via email to