diff options
author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2020-01-12 12:57:01 +0000 |
---|---|---|
committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2020-01-12 14:36:59 +0000 |
commit | ad201691d5cc0f15f6f885f3847dcc6440ee3de5 (patch) | |
tree | 7fcc942d88630557b836eafbc15fd56e4a06f2b6 | |
parent | a888277897f75b2952d96de229fff57519cfc363 (diff) | |
download | bcm5719-llvm-ad201691d5cc0f15f6f885f3847dcc6440ee3de5.tar.gz bcm5719-llvm-ad201691d5cc0f15f6f885f3847dcc6440ee3de5.zip |
Fix "pointer is null" static analyzer warnings. NFCI.
Use cast<> instead of dyn_cast<> and move into its users where its dereferenced immediately.
-rw-r--r-- | clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp index 0cf7056a078..21c4bbc6026 100644 --- a/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp +++ b/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp @@ -1006,12 +1006,9 @@ ProgramStateRef CStringChecker::InvalidateBuffer(CheckerContext &C, bool CStringChecker::SummarizeRegion(raw_ostream &os, ASTContext &Ctx, const MemRegion *MR) { - const TypedValueRegion *TVR = dyn_cast<TypedValueRegion>(MR); - switch (MR->getKind()) { case MemRegion::FunctionCodeRegionKind: { - const NamedDecl *FD = cast<FunctionCodeRegion>(MR)->getDecl(); - if (FD) + if (const auto *FD = cast<FunctionCodeRegion>(MR)->getDecl()) os << "the address of the function '" << *FD << '\''; else os << "the address of a function"; @@ -1025,16 +1022,20 @@ bool CStringChecker::SummarizeRegion(raw_ostream &os, ASTContext &Ctx, return true; case MemRegion::CXXThisRegionKind: case MemRegion::CXXTempObjectRegionKind: - os << "a C++ temp object of type " << TVR->getValueType().getAsString(); + os << "a C++ temp object of type " + << cast<TypedValueRegion>(MR)->getValueType().getAsString(); return true; case MemRegion::VarRegionKind: - os << "a variable of type" << TVR->getValueType().getAsString(); + os << "a variable of type" + << cast<TypedValueRegion>(MR)->getValueType().getAsString(); return true; case MemRegion::FieldRegionKind: - os << "a field of type " << TVR->getValueType().getAsString(); + os << "a field of type " + << cast<TypedValueRegion>(MR)->getValueType().getAsString(); return true; case MemRegion::ObjCIvarRegionKind: - os << "an instance variable of type " << TVR->getValueType().getAsString(); + os << "an instance variable of type " + << cast<TypedValueRegion>(MR)->getValueType().getAsString(); return true; default: return false; |