]> granicus.if.org Git - clang/commitdiff
BlockInCriticalSectionChecker - silence static analyzer dyn_cast null dereference...
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Sun, 13 Oct 2019 11:30:06 +0000 (11:30 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Sun, 13 Oct 2019 11:30:06 +0000 (11:30 +0000)
The static analyzer is warning about a potential null dereference, but we should be able to use cast<> directly and if not assert will fire for us.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@374717 91177308-0d34-0410-b5e6-96231b3b80d8

lib/StaticAnalyzer/Checkers/BlockInCriticalSectionChecker.cpp

index e5b8a6b5ffe304e014ad9ab0fe7f164fd38a6bd7..0eb3c3d1d0e6da6409fb5555f4932fb9cac0fae9 100644 (file)
@@ -126,7 +126,7 @@ bool BlockInCriticalSectionChecker::isLockFunction(const CallEvent &Call) const
 
 bool BlockInCriticalSectionChecker::isUnlockFunction(const CallEvent &Call) const {
   if (const auto *Dtor = dyn_cast<CXXDestructorCall>(&Call)) {
-    const auto *DRecordDecl = dyn_cast<CXXRecordDecl>(Dtor->getDecl()->getParent());
+    const auto *DRecordDecl = cast<CXXRecordDecl>(Dtor->getDecl()->getParent());
     auto IdentifierInfo = DRecordDecl->getIdentifier();
     if (IdentifierInfo == IILockGuard || IdentifierInfo == IIUniqueLock)
       return true;