Lines Matching refs:SVal
30 const llvm::APSInt *getConstValue(ProgramStateRef state, SVal V);
52 SVal simplifyUntilFixpoint(ProgramStateRef State, SVal Val);
58 SVal simplifySValOnce(ProgramStateRef State, SVal V);
66 SVal evalBinOpNN(ProgramStateRef state, BinaryOperator::Opcode op,
68 SVal evalBinOpLL(ProgramStateRef state, BinaryOperator::Opcode op,
70 SVal evalBinOpLN(ProgramStateRef state, BinaryOperator::Opcode op,
76 const llvm::APSInt *getKnownValue(ProgramStateRef state, SVal V) override;
78 SVal simplifySVal(ProgramStateRef State, SVal V) override;
80 SVal MakeSymIntVal(const SymExpr *LHS, BinaryOperator::Opcode op,
112 SVal SimpleSValBuilder::MakeSymIntVal(const SymExpr *LHS, in MakeSymIntVal()
222 SVal Result = in isInRelation()
406 SVal SimpleSValBuilder::evalBinOpNN(ProgramStateRef state, in evalBinOpNN()
415 SVal simplifiedLhs = simplifySVal(state, lhs); in evalBinOpNN()
416 SVal simplifiedRhs = simplifySVal(state, rhs); in evalBinOpNN()
693 static SVal evalBinOpFieldRegionFieldRegion(const FieldRegion *LeftFR, in evalBinOpFieldRegionFieldRegion()
762 SVal SimpleSValBuilder::evalBinOpLL(ProgramStateRef state, in evalBinOpLL()
976 SVal LeftIndexVal = LeftER->getIndex(); in evalBinOpLL()
986 SVal RightIndexVal = RightER->getIndex(); in evalBinOpLL()
1005 SVal R = evalBinOpFieldRegionFieldRegion(LeftFR, RightFR, op, resultTy, in evalBinOpLL()
1052 SVal SimpleSValBuilder::evalBinOpLN(ProgramStateRef state, in evalBinOpLN()
1060 auto getFieldLValue = [&](const auto *FD) -> SVal { in evalBinOpLN()
1061 SVal Result = lhs; in evalBinOpLN()
1129 SVal index = UnknownVal(); in evalBinOpLN()
1169 SVal V) { in getConstValue()
1186 SVal V) { in getKnownValue()
1190 SVal SimpleSValBuilder::simplifyUntilFixpoint(ProgramStateRef State, SVal Val) { in simplifyUntilFixpoint()
1191 SVal SimplifiedVal = simplifySValOnce(State, Val); in simplifyUntilFixpoint()
1199 SVal SimpleSValBuilder::simplifySVal(ProgramStateRef State, SVal V) { in simplifySVal()
1203 SVal SimpleSValBuilder::simplifySValOnce(ProgramStateRef State, SVal V) { in simplifySValOnce()
1208 class Simplifier : public FullSValVisitor<Simplifier, SVal> { in simplifySValOnce()
1216 llvm::DenseMap<SymbolRef, SVal> Cached; in simplifySValOnce()
1218 static bool isUnchanged(SymbolRef Sym, SVal Val) { in simplifySValOnce()
1222 SVal cache(SymbolRef Sym, SVal V) { in simplifySValOnce()
1227 SVal skip(SymbolRef Sym) { in simplifySValOnce()
1233 SVal getConst(SymbolRef Sym) { in simplifySValOnce()
1237 return Loc::isLocType(Sym->getType()) ? (SVal)SVB.makeIntLocVal(*Const) in simplifySValOnce()
1238 : (SVal)SVB.makeIntVal(*Const); in simplifySValOnce()
1242 SVal getConstOrVisit(SymbolRef Sym) { in simplifySValOnce()
1243 const SVal Ret = getConst(Sym); in simplifySValOnce()
1253 SVal VisitSymbolData(const SymbolData *S) { in simplifySValOnce()
1257 return Loc::isLocType(S->getType()) ? (SVal)SVB.makeIntLocVal(*I) in simplifySValOnce()
1258 : (SVal)SVB.makeIntVal(*I); in simplifySValOnce()
1262 SVal VisitSymIntExpr(const SymIntExpr *S) { in simplifySValOnce()
1267 SVal LHS = getConstOrVisit(S->getLHS()); in simplifySValOnce()
1271 SVal RHS; in simplifySValOnce()
1294 SVal VisitIntSymExpr(const IntSymExpr *S) { in simplifySValOnce()
1299 SVal RHS = getConstOrVisit(S->getRHS()); in simplifySValOnce()
1303 SVal LHS = SVB.makeIntVal(S->getLHS()); in simplifySValOnce()
1308 SVal VisitSymSymExpr(const SymSymExpr *S) { in simplifySValOnce()
1321 SVal LHS = getConstOrVisit(S->getLHS()); in simplifySValOnce()
1322 SVal RHS = getConstOrVisit(S->getRHS()); in simplifySValOnce()
1331 SVal VisitSymbolCast(const SymbolCast *S) { in simplifySValOnce()
1336 SVal OpVal = getConstOrVisit(OpSym); in simplifySValOnce()
1343 SVal VisitUnarySymExpr(const UnarySymExpr *S) { in simplifySValOnce()
1347 SVal Op = getConstOrVisit(S->getOperand()); in simplifySValOnce()
1355 SVal VisitSymExpr(SymbolRef S) { return nonloc::SymbolVal(S); } in simplifySValOnce()
1357 SVal VisitMemRegion(const MemRegion *R) { return loc::MemRegionVal(R); } in simplifySValOnce()
1359 SVal VisitNonLocSymbolVal(nonloc::SymbolVal V) { in simplifySValOnce()
1365 SVal VisitSVal(SVal V) { return V; } in simplifySValOnce()
1368 SVal SimplifiedV = Simplifier(State).Visit(V); in simplifySValOnce()