| /src/contrib/llvm-project/clang/lib/StaticAnalyzer/Core/ |
| H A D | DynamicExtent.cpp | 29 const MemRegion *MR, SValBuilder &SVB) { in getDynamicExtent() argument 34 SVB.convertToArrayIndex(*Size).getAs<DefinedOrUnknownSVal>()) in getDynamicExtent() 37 return MR->getMemRegionManager().getStaticSize(MR, SVB); in getDynamicExtent() 40 DefinedOrUnknownSVal getElementExtent(QualType Ty, SValBuilder &SVB) { in getElementExtent() argument 41 return SVB.makeIntVal(SVB.getContext().getTypeSizeInChars(Ty).getQuantity(), in getElementExtent() 42 SVB.getArrayIndexType()); in getElementExtent() 45 static DefinedOrUnknownSVal getConstantArrayElementCount(SValBuilder &SVB, in getConstantArrayElementCount() argument 54 SVB.getContext().getAsConstantArrayType(TVR->getValueType())) in getConstantArrayElementCount() 55 return SVB.makeIntVal(CAT->getSize(), /* isUnsigned = */ false); in getConstantArrayElementCount() 63 SValBuilder &SVB = State->getStateManager().getSValBuilder(); in getDynamicElementCount() local [all …]
|
| H A D | SimpleSValBuilder.cpp | 236 SValBuilder &SVB = State->getStateManager().getSValBuilder(); in isInRelation() local 238 SVB.evalBinOpNN(State, Rel, nonloc::SymbolVal(Sym), in isInRelation() 239 nonloc::ConcreteInt(Bound), SVB.getConditionType()); in isInRelation() 253 SValBuilder &SVB = State->getStateManager().getSValBuilder(); in isWithinConstantOverflowBounds() local 254 BasicValueFactory &BV = SVB.getBasicValueFactory(); in isWithinConstantOverflowBounds() 296 SValBuilder &SVB = State->getStateManager().getSValBuilder(); in doRearrangeUnchecked() local 297 BasicValueFactory &BV = SVB.getBasicValueFactory(); in doRearrangeUnchecked() 298 SymbolManager &SymMgr = SVB.getSymbolManager(); in doRearrangeUnchecked() 310 ResultTy = SVB.getConditionType(); in doRearrangeUnchecked() 317 return SVB.evalBinOpNN(State, Op, nonloc::ConcreteInt(LInt), in doRearrangeUnchecked() [all …]
|
| H A D | CallEvent.cpp | 401 const ParmVarDecl *Parameter, SValBuilder &SVB) { in processArgument() argument 417 BasicValueFactory &BVF = SVB.getBasicValueFactory(); in processArgument() 423 return SVB.makeCompoundVal(ParamType, CompoundSVals); in processArgument() 436 SVal ArgVal, SValBuilder &SVB) { in castArgToParamTypeIfNeeded() argument 458 return SVB.evalCast(ArgVal, Param->getType(), ArgExpr->getType()); in castArgToParamTypeIfNeeded() 463 SValBuilder &SVB, in addParameterValuesToBindings() argument 466 MemRegionManager &MRMgr = SVB.getRegionManager(); in addParameterValuesToBindings() 492 ArgVal = castArgToParamTypeIfNeeded(Call, Idx, ArgVal, SVB); in addParameterValuesToBindings() 494 Loc ParamLoc = SVB.makeLoc( in addParameterValuesToBindings() 497 std::make_pair(ParamLoc, processArgument(ArgVal, ArgExpr, *I, SVB))); in addParameterValuesToBindings() [all …]
|
| H A D | SimpleConstraintManager.cpp | 31 SValBuilder &SVB = State->getStateManager().getSValBuilder(); in assumeInternal() local 37 T = SVB.getContext().VoidPtrTy; in assumeInternal() 39 Cond = SVB.evalCast(*LV, SVB.getContext().BoolTy, T).castAs<DefinedSVal>(); in assumeInternal()
|
| H A D | ExprEngineCXX.cpp | 102 SValBuilder &SVB = State->getStateManager().getSValBuilder(); in makeElementRegion() local 103 ASTContext &Ctx = SVB.getContext(); in makeElementRegion() 110 LValue = State->getLValue(Ty, SVB.makeArrayIndex(Idx), LValue); in makeElementRegion() 126 SValBuilder &SVB = getSValBuilder(); in computeObjectUnderConstruction() local 127 MemRegionManager &MRMgr = SVB.getRegionManager(); in computeObjectUnderConstruction() 128 ASTContext &ACtx = SVB.getContext(); in computeObjectUnderConstruction() 147 Loc ThisPtr = SVB.getCXXThis(CurCtor, LCtx->getStackFrame()); in computeObjectUnderConstruction() 156 return SVB.makeLoc(BaseReg); in computeObjectUnderConstruction() 190 MR, SVB.getContext()); in computeObjectUnderConstruction() 246 return SVB.conjureSymbolVal(&TopLevelSymRegionTag, RetE, SFC, RegionTy, in computeObjectUnderConstruction()
|
| H A D | RangedConstraintManager.cpp | 236 SValBuilder &SVB = State->getStateManager().getSValBuilder(); in simplifyToSVal() local 237 return SVB.simplifySVal(State, SVB.makeSymbolVal(Sym)); in simplifyToSVal()
|
| /src/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/ |
| H A D | ErrnoTesterChecker.cpp | 108 SValBuilder &SVB = C.getSValBuilder(); in evalSetErrnoIfError() local 111 Call.getOriginExpr(), C.getLocationContext(), SVB.makeIntVal(0, true)); in evalSetErrnoIfError() 115 Call.getOriginExpr(), C.getLocationContext(), SVB.makeIntVal(1, true)); in evalSetErrnoIfError() 125 SValBuilder &SVB = C.getSValBuilder(); in evalSetErrnoIfErrorRange() local 128 Call.getOriginExpr(), C.getLocationContext(), SVB.makeIntVal(0, true)); in evalSetErrnoIfErrorRange() 132 Call.getOriginExpr(), C.getLocationContext(), SVB.makeIntVal(1, true)); in evalSetErrnoIfErrorRange() 133 DefinedOrUnknownSVal ErrnoVal = SVB.conjureSymbolVal( in evalSetErrnoIfErrorRange() 147 SValBuilder &SVB = C.getSValBuilder(); in evalSetErrnoCheckState() local 150 Call.getOriginExpr(), C.getLocationContext(), SVB.makeIntVal(0, true)); in evalSetErrnoCheckState() 154 Call.getOriginExpr(), C.getLocationContext(), SVB.makeIntVal(1, true)); in evalSetErrnoCheckState() [all …]
|
| H A D | ArrayBoundCheckerV2.cpp | 171 computeOffset(ProgramStateRef State, SValBuilder &SVB, SVal Location) { in computeOffset() argument 172 QualType T = SVB.getArrayIndexType(); in computeOffset() 173 auto EvalBinOp = [&SVB, State, T](BinaryOperatorKind Op, NonLoc L, NonLoc R) { in computeOffset() 175 return SVB.evalBinOpNN(State, Op, L, R, T).getAs<NonLoc>(); in computeOffset() 179 std::optional<NonLoc> Offset = SVB.makeZeroArrayIndex(); in computeOffset() 198 NonLoc Size = SVB.makeArrayIndex( in computeOffset() 199 SVB.getContext().getTypeSizeInChars(ElemType).getQuantity()); in computeOffset() 273 static bool isNegative(SValBuilder &SVB, ProgramStateRef State, NonLoc Value) { in isNegative() argument 274 const llvm::APSInt *MaxV = SVB.getMaxValue(State, Value); in isNegative() 278 static bool isUnsigned(SValBuilder &SVB, NonLoc Value) { in isUnsigned() argument [all …]
|
| H A D | PointerSubChecker.cpp | 68 SValBuilder &SVB = C.getSValBuilder(); in checkArrayBounds() local 71 if (const llvm::APSInt *I = SVB.getKnownValue(State, ElemReg->getIndex()); in checkArrayBounds() 78 getDynamicElementCount(State, SuperReg, SVB, ElemReg->getElementType()); in checkArrayBounds() 79 auto IndexTooLarge = SVB.evalBinOp(C.getState(), BO_GT, ElemReg->getIndex(), in checkArrayBounds() 80 ElemCount, SVB.getConditionType()) in checkArrayBounds() 90 auto IndexTooSmall = SVB.evalBinOp(State, BO_LT, ElemReg->getIndex(), in checkArrayBounds() 91 SVB.makeZeroVal(SVB.getArrayIndexType()), in checkArrayBounds() 92 SVB.getConditionType()) in checkArrayBounds()
|
| H A D | VLASizeChecker.cpp | 96 SValBuilder &SVB = C.getSValBuilder(); in checkVLA() local 99 SVB.getBasicValueFactory().getMaxValue(SizeTy).getZExtValue(); in checkVLA() 104 SVB.makeIntVal(EleSize.getQuantity(), SizeTy).castAs<NonLoc>(); in checkVLA() 108 if (const llvm::APSInt *KV = SVB.getKnownValue(State, ArrSize)) in checkVLA() 115 SVB.evalCast(SizeD, SizeTy, SizeE->getType()).castAs<NonLoc>(); in checkVLA() 117 SVal Mul = SVB.evalBinOpNN(State, BO_Mul, ArrSize, IndexLength, SizeTy); in checkVLA() 124 if (const llvm::APSInt *IndexLVal = SVB.getKnownValue(State, IndexLength)) { in checkVLA() 182 SValBuilder &SVB = C.getSValBuilder(); in checkVLAIndexSize() local 185 DefinedOrUnknownSVal Zero = SVB.makeZeroVal(SizeTy); in checkVLAIndexSize() 188 SVB.evalBinOp(State, BO_LT, SizeD, Zero, SVB.getConditionType()); in checkVLAIndexSize() [all …]
|
| H A D | Iterator.cpp | 230 auto &SVB = State->getStateManager().getSValBuilder(); in advancePosition() local 249 Pos->setTo(SVB.evalBinOp(State, BinOp, in advancePosition() 265 SValBuilder &SVB = State->getStateManager().getSValBuilder(); in assumeNoOverflow() local 266 BasicValueFactory &BV = SVB.getBasicValueFactory(); in assumeNoOverflow() 276 SVB.evalBinOpNN(State, BO_LE, nonloc::SymbolVal(Sym), in assumeNoOverflow() 277 nonloc::ConcreteInt(Max), SVB.getConditionType()); in assumeNoOverflow() 286 SVB.evalBinOpNN(State, BO_GE, nonloc::SymbolVal(Sym), in assumeNoOverflow() 287 nonloc::ConcreteInt(Min), SVB.getConditionType()); in assumeNoOverflow() 304 auto &SVB = State->getStateManager().getSValBuilder(); in compare() local 307 SVB.evalBinOp(State, Opc, NL1, NL2, SVB.getConditionType()); in compare()
|
| H A D | STLAlgorithmModeling.cpp | 132 auto &SVB = C.getSValBuilder(); in Find() local 135 SVal RetVal = SVB.conjureSymbolVal(nullptr, CE, LCtx, C.blockCount()); in Find() 151 SVal GreaterOrEqual = SVB.evalBinOp(StateFound, BO_GE, in Find() 154 SVB.getConditionType()); in Find() 173 SVal Less = SVB.evalBinOp(StateFound, BO_LT, in Find() 176 SVB.getConditionType()); in Find()
|
| H A D | ErrnoModeling.cpp | 115 SValBuilder &SVB = C.getSValBuilder(); in checkBeginFunction() local 126 const SymbolConjured *Sym = SVB.conjureSymbol( in checkBeginFunction() 133 ACtx.IntTy, SVB.makeZeroArrayIndex(), in checkBeginFunction() 246 SValBuilder &SVB = C.getSValBuilder(); in setErrnoForStdFailure() local 247 NonLoc ZeroVal = SVB.makeZeroVal(C.getASTContext().IntTy).castAs<NonLoc>(); in setErrnoForStdFailure() 249 SVB.evalBinOp(State, BO_NE, ErrnoSym, ZeroVal, SVB.getConditionType()) in setErrnoForStdFailure()
|
| H A D | ContainerModeling.cpp | 143 ProgramStateRef State, SValBuilder &SVB, SymbolRef OldSym, 145 SymbolRef rebaseSymbol(ProgramStateRef State, SValBuilder &SVB, SymbolRef Expr, 326 auto &SVB = C.getSValBuilder(); in handleAssignment() local 341 State, SVB, OldEndSym, NewEndSym, OldEndSym, BO_LT); in handleAssignment() 440 auto &SVB = C.getSValBuilder(); in handlePushBack() local 442 SVB.evalBinOp(State, BO_Add, in handlePushBack() 469 auto &SVB = C.getSValBuilder(); in handlePopBack() local 471 SVB.evalBinOp(State, BO_Sub, in handlePopBack() 514 auto &SVB = C.getSValBuilder(); in handlePushFront() local 516 SVB.evalBinOp(State, BO_Sub, in handlePushFront() [all …]
|
| H A D | EnumCastOutOfRangeChecker.cpp | 40 SValBuilder &SVB; member in __anonfc3acb720111::ConstraintBasedEQEvaluator 45 : CompareValue(CompareValue), PS(C.getState()), SVB(C.getSValBuilder()) {} in ConstraintBasedEQEvaluator() 48 DefinedOrUnknownSVal EnumDeclValue = SVB.makeIntVal(EnumDeclInitValue); in operator ()() 50 SVB.evalEQ(PS, EnumDeclValue, CompareValue); in operator ()()
|
| H A D | BuiltinFunctionChecker.cpp | 130 SValBuilder &SVB = C.getSValBuilder(); in evalCall() local 136 BasicValueFactory &BVF = SVB.getBasicValueFactory(); in evalCall() 138 V = SVB.makeIntVal(Result); in evalCall() 146 V = SVB.makeIntVal(0, CE->getType()); in evalCall()
|
| H A D | CXXSelfAssignmentChecker.cpp | 48 auto &SVB = C.getSValBuilder(); in checkBeginFunction() local 50 State->getSVal(SVB.getCXXThis(MD, LCtx->getStackFrame())); in checkBeginFunction() 51 auto Param = SVB.makeLoc(State->getRegion(MD->getParamDecl(0), LCtx)); in checkBeginFunction()
|
| H A D | BitwiseShiftChecker.cpp | 140 SValBuilder &SVB = Ctx.getSValBuilder(); in assumeRequirement() local 143 const auto LimitVal = SVB.makeIntVal(Limit, Ctx.getASTContext().IntTy); in assumeRequirement() 147 auto ResultVal = SVB.evalBinOp(FoldedState, Comparison, OperandVal, LimitVal, in assumeRequirement() 148 SVB.getConditionType()); in assumeRequirement() 179 SValBuilder &SVB = Ctx.getSValBuilder(); in checkOvershift() local 180 if (const llvm::APSInt *MinRight = SVB.getMinValue(FoldedState, Right)) { in checkOvershift()
|
| H A D | SetgidSetuidOrderChecker.cpp | 93 SValBuilder &SVB = State->getStateManager().getSValBuilder(); in evalAssume() local 104 SVB.evalBinOpNN(State, BO_NE, nonloc::SymbolVal(LastSetuidSym), in evalAssume() 105 SVB.makeIntVal(0, /*isUnsigned=*/false), in evalAssume() 106 SVB.getConditionType()) in evalAssume()
|
| H A D | MIGChecker.cpp | 236 SValBuilder &SVB = C.getSValBuilder(); in mayBeSuccess() local 241 V = SVB.evalEQ(C.getState(), V, SVB.makeIntVal(MigNoReply, ACtx.IntTy)); in mayBeSuccess()
|
| H A D | VirtualCallChecker.cpp | 173 auto &SVB = C.getSValBuilder(); in registerCtorDtorCallInState() local 178 State->getSVal(SVB.getCXXThis(MD, LCtx->getStackFrame())); in registerCtorDtorCallInState() 192 State->getSVal(SVB.getCXXThis(MD, LCtx->getStackFrame())); in registerCtorDtorCallInState()
|
| H A D | TrustNonnullChecker.cpp | 217 SValBuilder &SVB = InputState->getStateManager().getSValBuilder(); in addImplication() local 224 SVal AntecedentV = SVB.makeSymbolVal(Antecedent); in addImplication() 229 SVal ConsequentS = SVB.makeSymbolVal(*Consequent); in addImplication()
|
| /src/contrib/llvm-project/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ |
| H A D | SimpleConstraintManager.h | 25 SValBuilder &SVB; variable 29 : EE(exprengine), SVB(SB) {} in SimpleConstraintManager() 78 SValBuilder &getSValBuilder() const { return SVB; } in getSValBuilder() 79 BasicValueFactory &getBasicVals() const { return SVB.getBasicValueFactory(); } in getBasicVals() 80 SymbolManager &getSymbolManager() const { return SVB.getSymbolManager(); } in getSymbolManager()
|
| H A D | DynamicExtent.h | 27 const MemRegion *MR, SValBuilder &SVB); 30 DefinedOrUnknownSVal getElementExtent(QualType Ty, SValBuilder &SVB); 35 SValBuilder &SVB, QualType Ty); 39 DefinedOrUnknownSVal Extent, SValBuilder &SVB);
|
| H A D | SMTConstraintManager.h | 276 SValBuilder &SVB = getSValBuilder(); in REGISTER_TRAIT_WITH_PROGRAMSTATE() local 279 return canReasonAbout(SVB.makeSymbolVal(SC->getOperand())); in REGISTER_TRAIT_WITH_PROGRAMSTATE() 283 return canReasonAbout(SVB.makeSymbolVal(SIE->getLHS())); in REGISTER_TRAIT_WITH_PROGRAMSTATE() 286 return canReasonAbout(SVB.makeSymbolVal(ISE->getRHS())); in REGISTER_TRAIT_WITH_PROGRAMSTATE() 289 return canReasonAbout(SVB.makeSymbolVal(SSE->getLHS())) && in REGISTER_TRAIT_WITH_PROGRAMSTATE() 290 canReasonAbout(SVB.makeSymbolVal(SSE->getRHS())); in REGISTER_TRAIT_WITH_PROGRAMSTATE()
|