Lines Matching defs:SVB
172 computeOffset(ProgramStateRef State, SValBuilder &SVB, SVal Location) {
173 QualType T = SVB.getArrayIndexType();
174 auto EvalBinOp = [&SVB, State, T](BinaryOperatorKind Op, NonLoc L, NonLoc R) {
176 return SVB.evalBinOpNN(State, Op, L, R, T).getAs<NonLoc>();
180 std::optional<NonLoc> Offset = SVB.makeZeroArrayIndex();
199 NonLoc Size = SVB.makeArrayIndex(
200 SVB.getContext().getTypeSizeInChars(ElemType).getQuantity());
273 static bool isNegative(SValBuilder &SVB, ProgramStateRef State, NonLoc Value) {
274 const llvm::APSInt *MaxV = SVB.getMaxValue(State, Value);
278 static bool isUnsigned(SValBuilder &SVB, NonLoc Value) {
279 QualType T = Value.getType(SVB.getContext());
292 SValBuilder &SVB, bool CheckEquality = false) {
294 std::tie(Value, Threshold) = getSimplifiedOffsets(Value, *ConcreteThreshold, SVB);
304 if (isNegative(SVB, State, Value) && isUnsigned(SVB, Threshold)) {
312 if (isUnsigned(SVB, Value) && isNegative(SVB, State, Threshold)) {
330 SVB.evalBinOpNN(State, OpKind, Value, Threshold, SVB.getConditionType())
562 SValBuilder &SVB = C.getSValBuilder();
565 computeOffset(State, SVB, Location);
587 State, ByteOffset, SVB.makeZeroArrayIndex(), SVB);
610 DefinedOrUnknownSVal Size = getDynamicExtent(State, Reg, SVB);
620 compareValueToThreshold(State, ByteOffset, *KnownSize, SVB);