This revision was automatically updated to reflect the committed changes. Closed by commit rGc2888cddd5d9: [NFC] Fix potential dereferencing of null return value. (authored by schittir).
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D152977/new/ https://reviews.llvm.org/D152977 Files: clang/lib/AST/ASTContext.cpp clang/lib/Frontend/FrontendActions.cpp clang/lib/Sema/SemaType.cpp clang/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp Index: clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp =================================================================== --- clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp +++ clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp @@ -291,6 +291,7 @@ // Existence in DestroyRetVal ensures existence in LockMap. // Existence in Destroyed also ensures that the lock state for lockR is either // UntouchedAndPossiblyDestroyed or UnlockedAndPossiblyDestroyed. + assert(lstate); assert(lstate->isUntouchedAndPossiblyDestroyed() || lstate->isUnlockedAndPossiblyDestroyed()); Index: clang/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp =================================================================== --- clang/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp +++ clang/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp @@ -321,7 +321,9 @@ if (!IvarRegion) return nullptr; - return IvarRegion->getSymbolicBase()->getSymbol(); + const SymbolicRegion *SR = IvarRegion->getSymbolicBase(); + assert(SR && "Symbolic base should not be nullptr"); + return SR->getSymbol(); } /// If we are in -dealloc or -dealloc is on the stack, handle the call if it is Index: clang/lib/Sema/SemaType.cpp =================================================================== --- clang/lib/Sema/SemaType.cpp +++ clang/lib/Sema/SemaType.cpp @@ -2790,7 +2790,7 @@ // Only support _BitInt elements with byte-sized power of 2 NumBits. if (T->isBitIntType()) { - unsigned NumBits = T->getAs<BitIntType>()->getNumBits(); + unsigned NumBits = T->castAs<BitIntType>()->getNumBits(); if (!llvm::isPowerOf2_32(NumBits) || NumBits < 8) { Diag(AttrLoc, diag::err_attribute_invalid_bitint_vector_type) << (NumBits < 8); Index: clang/lib/Frontend/FrontendActions.cpp =================================================================== --- clang/lib/Frontend/FrontendActions.cpp +++ clang/lib/Frontend/FrontendActions.cpp @@ -458,6 +458,8 @@ return; } + assert(NamedCtx && "NamedCtx cannot be null"); + if (const auto *Decl = dyn_cast<ParmVarDecl>(NamedTemplate)) { OS << "unnamed function parameter " << Decl->getFunctionScopeIndex() << " "; Index: clang/lib/AST/ASTContext.cpp =================================================================== --- clang/lib/AST/ASTContext.cpp +++ clang/lib/AST/ASTContext.cpp @@ -4141,8 +4141,8 @@ assert(vecType->isBuiltinType() || vecType->isDependentType() || (vecType->isBitIntType() && // Only support _BitInt elements with byte-sized power of 2 NumBits. - llvm::isPowerOf2_32(vecType->getAs<BitIntType>()->getNumBits()) && - vecType->getAs<BitIntType>()->getNumBits() >= 8)); + llvm::isPowerOf2_32(vecType->castAs<BitIntType>()->getNumBits()) && + vecType->castAs<BitIntType>()->getNumBits() >= 8)); // Check if we've already instantiated a vector of this type. llvm::FoldingSetNodeID ID;
Index: clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp =================================================================== --- clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp +++ clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp @@ -291,6 +291,7 @@ // Existence in DestroyRetVal ensures existence in LockMap. // Existence in Destroyed also ensures that the lock state for lockR is either // UntouchedAndPossiblyDestroyed or UnlockedAndPossiblyDestroyed. + assert(lstate); assert(lstate->isUntouchedAndPossiblyDestroyed() || lstate->isUnlockedAndPossiblyDestroyed()); Index: clang/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp =================================================================== --- clang/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp +++ clang/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp @@ -321,7 +321,9 @@ if (!IvarRegion) return nullptr; - return IvarRegion->getSymbolicBase()->getSymbol(); + const SymbolicRegion *SR = IvarRegion->getSymbolicBase(); + assert(SR && "Symbolic base should not be nullptr"); + return SR->getSymbol(); } /// If we are in -dealloc or -dealloc is on the stack, handle the call if it is Index: clang/lib/Sema/SemaType.cpp =================================================================== --- clang/lib/Sema/SemaType.cpp +++ clang/lib/Sema/SemaType.cpp @@ -2790,7 +2790,7 @@ // Only support _BitInt elements with byte-sized power of 2 NumBits. if (T->isBitIntType()) { - unsigned NumBits = T->getAs<BitIntType>()->getNumBits(); + unsigned NumBits = T->castAs<BitIntType>()->getNumBits(); if (!llvm::isPowerOf2_32(NumBits) || NumBits < 8) { Diag(AttrLoc, diag::err_attribute_invalid_bitint_vector_type) << (NumBits < 8); Index: clang/lib/Frontend/FrontendActions.cpp =================================================================== --- clang/lib/Frontend/FrontendActions.cpp +++ clang/lib/Frontend/FrontendActions.cpp @@ -458,6 +458,8 @@ return; } + assert(NamedCtx && "NamedCtx cannot be null"); + if (const auto *Decl = dyn_cast<ParmVarDecl>(NamedTemplate)) { OS << "unnamed function parameter " << Decl->getFunctionScopeIndex() << " "; Index: clang/lib/AST/ASTContext.cpp =================================================================== --- clang/lib/AST/ASTContext.cpp +++ clang/lib/AST/ASTContext.cpp @@ -4141,8 +4141,8 @@ assert(vecType->isBuiltinType() || vecType->isDependentType() || (vecType->isBitIntType() && // Only support _BitInt elements with byte-sized power of 2 NumBits. - llvm::isPowerOf2_32(vecType->getAs<BitIntType>()->getNumBits()) && - vecType->getAs<BitIntType>()->getNumBits() >= 8)); + llvm::isPowerOf2_32(vecType->castAs<BitIntType>()->getNumBits()) && + vecType->castAs<BitIntType>()->getNumBits() >= 8)); // Check if we've already instantiated a vector of this type. llvm::FoldingSetNodeID ID;
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits