Lines Matching defs:SVal

252                     ProgramStateRef state, SVal V, QualType Ty);
256 SVal strLength);
257 static SVal getCStringLengthForRegion(CheckerContext &C,
262 SVal getCStringLength(CheckerContext &C,
265 SVal Buf,
271 SVal val) const;
276 const Expr *BufE, SVal BufV, SVal SizeV,
281 CheckerContext &C, ProgramStateRef S, const Expr *BufE, SVal BufV);
286 CheckerContext &C, ProgramStateRef S, const Expr *BufE, SVal BufV);
291 const Expr *BufE, SVal BufV);
297 CheckerContext &C, ProgramStateRef State, const Expr *Ex, SVal V,
305 static bool memsetAux(const Expr *DstBuffer, SVal CharE,
311 AnyArgExpr Arg, SVal l) const;
315 AnyArgExpr Buffer, SVal Element, SVal Size) const;
317 AnyArgExpr Buffer, SVal Element,
349 // Expects SVal of Size to be positive and unsigned.
350 // Expects SVal of FirstBuf to be a FieldRegion.
352 SVal BufVal, QualType BufTy, SVal LengthVal,
358 REGISTER_MAP_WITH_PROGRAMSTATE(CStringLength, const MemRegion *, SVal)
365 CStringChecker::assumeZero(CheckerContext &C, ProgramStateRef State, SVal V,
378 AnyArgExpr Arg, SVal l) const {
425 SVal Offset =
439 AnyArgExpr Buffer, SVal Element,
440 SVal Size) const {
518 SVal LastIdx = SVB.evalBinOpNN(State, BO_Sub, *Offset, One, IdxTy);
523 SVal LastElementVal =
554 AnyArgExpr Buffer, SVal Element,
616 SVal BufVal = C.getSVal(Buffer.Expression);
625 SVal BufStart =
637 SVal LengthVal = C.getSVal(Size.Expression);
644 SVal Offset = svalBuilder.evalBinOpNN(State, BO_Sub, *Length, One, SizeTy);
652 SVal BufEnd =
692 SVal firstVal = state->getSVal(First.Expression, LCtx);
693 SVal secondVal = state->getSVal(Second.Expression, LCtx);
720 SVal reverse =
742 SVal LengthVal = state->getSVal(Size.Expression, LCtx);
751 SVal FirstStart =
758 SVal FirstEnd = svalBuilder.evalBinOpLN(state, BO_Add, *FirstStartLoc,
765 SVal Overlap =
925 SVal maxMinusRight;
940 SVal willOverflow = svalBuilder.evalBinOpNN(state, BO_GT, left,
963 SVal strLength) {
1002 SVal CStringChecker::getCStringLengthForRegion(CheckerContext &C,
1009 const SVal *Recorded = state->get<CStringLength>(MR);
1017 SVal strLength = svalBuilder.getMetadataSymbolVal(CStringChecker::getTag(),
1031 SVal evalLength = svalBuilder.evalBinOpNN(state, BO_LE, *strLn, maxLength,
1041 SVal CStringChecker::getCStringLength(CheckerContext &C, ProgramStateRef &state,
1042 const Expr *Ex, SVal Buf,
1131 ProgramStateRef &state, const Expr *expr, SVal val) const {
1151 SVal BufVal, QualType BufTy,
1152 SVal LengthVal, QualType LengthTy) {
1172 SVal Offset = SB.evalBinOpNN(State, BO_Sub, *Length, One, LengthTy);
1178 SVal BufStart = SB.evalCast(BufVal, PtrTy, BufTy);
1183 SVal BufEnd = SB.evalBinOpLN(State, BO_Add, *BufLoc, LastOffset, PtrTy);
1212 CheckerContext &C, ProgramStateRef S, const Expr *BufE, SVal BufV,
1213 SVal SizeV, QualType SizeTy) {
1233 CheckerContext &C, ProgramStateRef S, const Expr *BufE, SVal BufV) {
1243 CheckerContext &C, ProgramStateRef S, const Expr *BufE, SVal BufV) {
1259 SVal BufV) {
1274 CheckerContext &C, ProgramStateRef State, const Expr *E, SVal V,
1350 bool CStringChecker::memsetAux(const Expr *DstBuffer, SVal CharVal,
1353 SVal MemVal = C.getSVal(DstBuffer);
1354 SVal SizeVal = C.getSVal(Size);
1415 SVal NewStrLen = svalBuilder.getMetadataSymbolVal(
1421 SVal NewStrLenGESize = svalBuilder.evalBinOp(
1450 SVal sizeVal = state->getSVal(Size.Expression, LCtx);
1458 SVal destVal = state->getSVal(Dest.Expression, LCtx);
1483 SVal srcVal = state->getSVal(Source.Expression, LCtx);
1508 SVal DestRegCharVal =
1510 SVal lastElement = C.getSValBuilder().evalBinOp(
1614 SVal sizeVal = State->getSVal(Size.Expression, LCtx);
1666 SVal CmpV = Builder.conjureSymbolVal(nullptr, Call.getOriginExpr(), LCtx,
1695 SVal maxlenVal = state->getSVal(maxlenExpr, LCtx);
1704 SVal zero = C.getSValBuilder().makeZeroVal(Call.getResultType());
1719 SVal ArgVal = state->getSVal(Arg.Expression, LCtx);
1725 SVal strLength = getCStringLength(C, state, Arg.Expression, ArgVal);
1742 SVal maxlenVal = state->getSVal(maxlenExpr, LCtx);
1886 SVal DstVal = state->getSVal(Dst.Expression, LCtx);
1893 SVal srcVal = state->getSVal(srcExpr.Expression, LCtx);
1899 SVal strLength = getCStringLength(C, state, srcExpr.Expression, srcVal);
1903 SVal dstStrLength = getCStringLength(C, state, Dst.Expression, DstVal);
1917 SVal amountCopied = UnknownVal();
1918 SVal maxLastElementIndex = UnknownVal();
1937 SVal lenVal = state->getSVal(lenExpr.Expression, LCtx);
1978 SVal freeSpace = svalBuilder.evalBinOpNN(state, BO_Sub, *lenValNL,
1991 SVal hasEnoughSpace = svalBuilder.evalBinOpNN(
2059 SVal retSize = svalBuilder.evalBinOp(
2091 SVal finalStrLength = UnknownVal();
2092 SVal strlRetVal = UnknownVal();
2140 SVal sourceInResult = svalBuilder.evalBinOpNN(
2151 SVal destInResult = svalBuilder.evalBinOpNN(state, BO_GE,
2169 SVal Result;
2194 SVal maxLastElement =
2209 SVal lastElement = svalBuilder.evalBinOpLN(state, BO_Add, *dstRegVal,
2303 SVal LeftVal = state->getSVal(Left.Expression, LCtx);
2310 SVal RightVal = state->getSVal(Right.Expression, LCtx);
2316 SVal LeftLength = getCStringLength(C, state, Left.Expression, LeftVal);
2321 SVal RightLength = getCStringLength(C, state, Right.Expression, RightVal);
2362 SVal resultVal = svalBuilder.conjureSymbolVal(nullptr, Call.getOriginExpr(),
2372 SVal lenVal = state->getSVal(lenExpr, LCtx);
2410 SVal compareWithZero =
2442 SVal SearchStrVal = State->getSVal(SearchStrPtr.Expression, LCtx);
2449 SVal DelimStrVal = State->getSVal(DelimStr.Expression, LCtx);
2455 SVal Result;
2512 SVal DstVal = State->getSVal(Dst, LCtx);
2520 SVal ResultVal =
2540 SVal SizeVal = C.getSVal(Size.Expression);
2547 SVal BufferPtrVal = C.getSVal(Buffer.Expression);
2583 SVal Zero = C.getSValBuilder().makeZeroVal(C.getASTContext().IntTy);
2588 SVal SizeVal = C.getSVal(Size.Expression);
2603 SVal MemVal = C.getSVal(Buffer.Expression);
2751 SVal StrVal = C.getSVal(Init);
2816 for (SVal Len : llvm::make_second_range(Entries)) {