Lines Matching defs:SVal
251 ProgramStateRef state, SVal V, QualType Ty);
255 SVal strLength);
256 static SVal getCStringLengthForRegion(CheckerContext &C,
261 SVal getCStringLength(CheckerContext &C,
264 SVal Buf,
270 SVal val) const;
275 const Expr *BufE, SVal BufV, SVal SizeV,
280 CheckerContext &C, ProgramStateRef S, const Expr *BufE, SVal BufV);
285 CheckerContext &C, ProgramStateRef S, const Expr *BufE, SVal BufV);
290 const Expr *BufE, SVal BufV);
296 CheckerContext &C, ProgramStateRef State, const Expr *Ex, SVal V,
304 static bool memsetAux(const Expr *DstBuffer, SVal CharE,
310 AnyArgExpr Arg, SVal l) const;
314 AnyArgExpr Buffer, SVal Element, SVal Size) const;
316 AnyArgExpr Buffer, SVal Element,
347 // Expects SVal of Size to be positive and unsigned.
348 // Expects SVal of FirstBuf to be a FieldRegion.
350 SVal BufVal, QualType BufTy, SVal LengthVal,
356 REGISTER_MAP_WITH_PROGRAMSTATE(CStringLength, const MemRegion *, SVal)
363 CStringChecker::assumeZero(CheckerContext &C, ProgramStateRef State, SVal V,
376 AnyArgExpr Arg, SVal l) const {
423 SVal Offset =
437 AnyArgExpr Buffer, SVal Element,
438 SVal Size) const {
515 SVal LastIdx = SVB.evalBinOpNN(State, BO_Sub, *Offset, One, IdxTy);
520 SVal LastElementVal =
550 AnyArgExpr Buffer, SVal Element,
612 SVal BufVal = C.getSVal(Buffer.Expression);
621 SVal BufStart =
633 SVal LengthVal = C.getSVal(Size.Expression);
640 SVal Offset = svalBuilder.evalBinOpNN(State, BO_Sub, *Length, One, SizeTy);
648 SVal BufEnd =
688 SVal firstVal = state->getSVal(First.Expression, LCtx);
689 SVal secondVal = state->getSVal(Second.Expression, LCtx);
716 SVal reverse =
738 SVal LengthVal = state->getSVal(Size.Expression, LCtx);
747 SVal FirstStart =
754 SVal FirstEnd = svalBuilder.evalBinOpLN(state, BO_Add, *FirstStartLoc,
761 SVal Overlap =
920 SVal maxMinusRight;
935 SVal willOverflow = svalBuilder.evalBinOpNN(state, BO_GT, left,
958 SVal strLength) {
997 SVal CStringChecker::getCStringLengthForRegion(CheckerContext &C,
1004 const SVal *Recorded = state->get<CStringLength>(MR);
1012 SVal strLength = svalBuilder.getMetadataSymbolVal(CStringChecker::getTag(),
1026 SVal evalLength = svalBuilder.evalBinOpNN(state, BO_LE, *strLn, maxLength,
1036 SVal CStringChecker::getCStringLength(CheckerContext &C, ProgramStateRef &state,
1037 const Expr *Ex, SVal Buf,
1126 ProgramStateRef &state, const Expr *expr, SVal val) const {
1146 SVal BufVal, QualType BufTy,
1147 SVal LengthVal, QualType LengthTy) {
1167 SVal Offset = SB.evalBinOpNN(State, BO_Sub, *Length, One, LengthTy);
1173 SVal BufStart = SB.evalCast(BufVal, PtrTy, BufTy);
1178 SVal BufEnd = SB.evalBinOpLN(State, BO_Add, *BufLoc, LastOffset, PtrTy);
1207 CheckerContext &C, ProgramStateRef S, const Expr *BufE, SVal BufV,
1208 SVal SizeV, QualType SizeTy) {
1228 CheckerContext &C, ProgramStateRef S, const Expr *BufE, SVal BufV) {
1238 CheckerContext &C, ProgramStateRef S, const Expr *BufE, SVal BufV) {
1254 SVal BufV) {
1269 CheckerContext &C, ProgramStateRef State, const Expr *E, SVal V,
1345 bool CStringChecker::memsetAux(const Expr *DstBuffer, SVal CharVal,
1348 SVal MemVal = C.getSVal(DstBuffer);
1349 SVal SizeVal = C.getSVal(Size);
1410 SVal NewStrLen = svalBuilder.getMetadataSymbolVal(
1416 SVal NewStrLenGESize = svalBuilder.evalBinOp(
1445 SVal sizeVal = state->getSVal(Size.Expression, LCtx);
1453 SVal destVal = state->getSVal(Dest.Expression, LCtx);
1478 SVal srcVal = state->getSVal(Source.Expression, LCtx);
1503 SVal DestRegCharVal =
1505 SVal lastElement = C.getSValBuilder().evalBinOp(
1609 SVal sizeVal = State->getSVal(Size.Expression, LCtx);
1661 SVal CmpV = Builder.conjureSymbolVal(nullptr, Call.getOriginExpr(), LCtx,
1690 SVal maxlenVal = state->getSVal(maxlenExpr, LCtx);
1699 SVal zero = C.getSValBuilder().makeZeroVal(Call.getResultType());
1714 SVal ArgVal = state->getSVal(Arg.Expression, LCtx);
1720 SVal strLength = getCStringLength(C, state, Arg.Expression, ArgVal);
1737 SVal maxlenVal = state->getSVal(maxlenExpr, LCtx);
1881 SVal DstVal = state->getSVal(Dst.Expression, LCtx);
1888 SVal srcVal = state->getSVal(srcExpr.Expression, LCtx);
1894 SVal strLength = getCStringLength(C, state, srcExpr.Expression, srcVal);
1898 SVal dstStrLength = getCStringLength(C, state, Dst.Expression, DstVal);
1912 SVal amountCopied = UnknownVal();
1913 SVal maxLastElementIndex = UnknownVal();
1932 SVal lenVal = state->getSVal(lenExpr.Expression, LCtx);
1973 SVal freeSpace = svalBuilder.evalBinOpNN(state, BO_Sub, *lenValNL,
1986 SVal hasEnoughSpace = svalBuilder.evalBinOpNN(
2054 SVal retSize = svalBuilder.evalBinOp(
2086 SVal finalStrLength = UnknownVal();
2087 SVal strlRetVal = UnknownVal();
2135 SVal sourceInResult = svalBuilder.evalBinOpNN(
2146 SVal destInResult = svalBuilder.evalBinOpNN(state, BO_GE,
2164 SVal Result;
2189 SVal maxLastElement =
2204 SVal lastElement = svalBuilder.evalBinOpLN(state, BO_Add, *dstRegVal,
2298 SVal LeftVal = state->getSVal(Left.Expression, LCtx);
2305 SVal RightVal = state->getSVal(Right.Expression, LCtx);
2311 SVal LeftLength = getCStringLength(C, state, Left.Expression, LeftVal);
2316 SVal RightLength = getCStringLength(C, state, Right.Expression, RightVal);
2357 SVal resultVal = svalBuilder.conjureSymbolVal(nullptr, Call.getOriginExpr(),
2367 SVal lenVal = state->getSVal(lenExpr, LCtx);
2405 SVal compareWithZero =
2437 SVal SearchStrVal = State->getSVal(SearchStrPtr.Expression, LCtx);
2444 SVal DelimStrVal = State->getSVal(DelimStr.Expression, LCtx);
2450 SVal Result;
2507 SVal DstVal = State->getSVal(Dst, LCtx);
2515 SVal ResultVal =
2535 SVal SizeVal = C.getSVal(Size.Expression);
2542 SVal BufferPtrVal = C.getSVal(Buffer.Expression);
2578 SVal Zero = C.getSValBuilder().makeZeroVal(C.getASTContext().IntTy);
2583 SVal SizeVal = C.getSVal(Size.Expression);
2598 SVal MemVal = C.getSVal(Buffer.Expression);
2746 SVal StrVal = C.getSVal(Init);
2811 for (SVal Len : llvm::make_second_range(Entries)) {