Lines Matching refs:SVB
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
279 QualType T = Value.getType(SVB.getContext()); in isUnsigned()
292 SValBuilder &SVB, bool CheckEquality = false) { in compareValueToThreshold() argument
294 std::tie(Value, Threshold) = getSimplifiedOffsets(Value, *ConcreteThreshold, SVB); in compareValueToThreshold()
304 if (isNegative(SVB, State, Value) && isUnsigned(SVB, Threshold)) { in compareValueToThreshold()
312 if (isUnsigned(SVB, Value) && isNegative(SVB, State, Threshold)) { in compareValueToThreshold()
330 SVB.evalBinOpNN(State, OpKind, Value, Threshold, SVB.getConditionType()) in compareValueToThreshold()
562 SValBuilder &SVB = C.getSValBuilder(); in performCheck() local
565 computeOffset(State, SVB, Location); in performCheck()
587 State, ByteOffset, SVB.makeZeroArrayIndex(), SVB); in performCheck()
610 DefinedOrUnknownSVal Size = getDynamicExtent(State, Reg, SVB); in performCheck()
620 compareValueToThreshold(State, ByteOffset, *KnownSize, SVB); in performCheck()