Lines Matching refs:IntRange

10924 struct IntRange {  struct
10934 IntRange(unsigned Width, bool NonNegative) in IntRange() function
10943 static IntRange forBoolType() { in forBoolType() argument
10944 return IntRange(1, true); in forBoolType()
10948 static IntRange forValueOfType(ASTContext &C, QualType T) { in forValueOfType() argument
10954 static IntRange forValueOfCanonicalType(ASTContext &C, const Type *T) { in forValueOfCanonicalType() argument
10974 return IntRange(C.getIntWidth(QualType(T, 0)), in forValueOfCanonicalType()
10982 return IntRange(NumPositive, true/*NonNegative*/); in forValueOfCanonicalType()
10984 return IntRange(std::max(NumPositive + 1, NumNegative), in forValueOfCanonicalType()
10989 return IntRange(EIT->getNumBits(), EIT->isUnsigned()); in forValueOfCanonicalType()
10994 return IntRange(C.getIntWidth(QualType(T, 0)), BT->isUnsignedInteger()); in forValueOfCanonicalType()
11002 static IntRange forTargetOfCanonicalType(ASTContext &C, const Type *T) { in forTargetOfCanonicalType() argument
11015 return IntRange(EIT->getNumBits(), EIT->isUnsigned()); in forTargetOfCanonicalType()
11020 return IntRange(C.getIntWidth(QualType(T, 0)), BT->isUnsignedInteger()); in forTargetOfCanonicalType()
11024 static IntRange join(IntRange L, IntRange R) { in join() argument
11026 return IntRange(std::max(L.valueBits(), R.valueBits()) + !Unsigned, in join()
11031 static IntRange bit_and(IntRange L, IntRange R) { in bit_and() argument
11042 return IntRange(Bits, NonNegative); in bit_and()
11046 static IntRange sum(IntRange L, IntRange R) { in sum() argument
11048 return IntRange(std::max(L.valueBits(), R.valueBits()) + 1 + !Unsigned, in sum()
11053 static IntRange difference(IntRange L, IntRange R) { in difference() argument
11059 return IntRange(std::max(L.valueBits(), R.valueBits()) + CanWiden + in difference()
11065 static IntRange product(IntRange L, IntRange R) { in product() argument
11071 return IntRange(L.valueBits() + R.valueBits() + CanWiden + !Unsigned, in product()
11076 static IntRange rem(IntRange L, IntRange R) { in rem() argument
11080 return IntRange(std::min(L.valueBits(), R.valueBits()) + !Unsigned, in rem()
11087 static IntRange GetValueRange(ASTContext &C, llvm::APSInt &value, in GetValueRange()
11090 return IntRange(value.getMinSignedBits(), false); in GetValueRange()
11097 return IntRange(value.getActiveBits(), true); in GetValueRange()
11100 static IntRange GetValueRange(ASTContext &C, APValue &result, QualType Ty, in GetValueRange()
11106 IntRange R = GetValueRange(C, result.getVectorElt(0), Ty, MaxWidth); in GetValueRange()
11108 IntRange El = GetValueRange(C, result.getVectorElt(i), Ty, MaxWidth); in GetValueRange()
11109 R = IntRange::join(R, El); in GetValueRange()
11115 IntRange R = GetValueRange(C, result.getComplexIntReal(), MaxWidth); in GetValueRange()
11116 IntRange I = GetValueRange(C, result.getComplexIntImag(), MaxWidth); in GetValueRange()
11117 return IntRange::join(R, I); in GetValueRange()
11126 return IntRange(MaxWidth, Ty->isUnsignedIntegerOrEnumerationType()); in GetValueRange()
11144 static IntRange GetExprRange(ASTContext &C, const Expr *E, unsigned MaxWidth, in GetExprRange()
11161 IntRange OutputTypeRange = IntRange::forValueOfType(C, GetExprType(CE)); in GetExprRange()
11170 IntRange SubRange = GetExprRange(C, CE->getSubExpr(), in GetExprRange()
11180 return IntRange(SubRange.Width, in GetExprRange()
11196 IntRange L = E->getType()->isVoidType() in GetExprRange()
11197 ? IntRange{0, true} in GetExprRange()
11200 IntRange R = E->getType()->isVoidType() in GetExprRange()
11201 ? IntRange{0, true} in GetExprRange()
11203 return IntRange::join(L, R); in GetExprRange()
11207 IntRange (*Combine)(IntRange, IntRange) = IntRange::join; in GetExprRange()
11222 return IntRange::forBoolType(); in GetExprRange()
11234 return IntRange::forValueOfType(C, GetExprType(E)); in GetExprRange()
11246 return IntRange::forValueOfType(C, GetExprType(E)); in GetExprRange()
11251 Combine = IntRange::bit_and; in GetExprRange()
11261 IntRange R = IntRange::forValueOfType(C, GetExprType(E)); in GetExprRange()
11262 return IntRange(R.Width, /*NonNegative*/ true); in GetExprRange()
11268 return IntRange::forValueOfType(C, GetExprType(E)); in GetExprRange()
11273 IntRange L = GetExprRange(C, BO->getLHS(), MaxWidth, InConstantContext, in GetExprRange()
11299 Combine = IntRange::sum; in GetExprRange()
11304 return IntRange::forValueOfType(C, GetExprType(E)); in GetExprRange()
11306 Combine = IntRange::difference; in GetExprRange()
11311 Combine = IntRange::product; in GetExprRange()
11319 IntRange L = GetExprRange(C, BO->getLHS(), opWidth, InConstantContext, in GetExprRange()
11336 IntRange R = GetExprRange(C, BO->getRHS(), opWidth, InConstantContext, in GetExprRange()
11338 return IntRange(L.Width, L.NonNegative && R.NonNegative); in GetExprRange()
11342 Combine = IntRange::rem; in GetExprRange()
11355 IntRange L = in GetExprRange()
11357 IntRange R = in GetExprRange()
11359 IntRange C = Combine(L, R); in GetExprRange()
11369 return IntRange::forBoolType(); in GetExprRange()
11374 return IntRange::forValueOfType(C, GetExprType(E)); in GetExprRange()
11387 return IntRange(BitField->getBitWidthValue(C), in GetExprRange()
11390 return IntRange::forValueOfType(C, GetExprType(E)); in GetExprRange()
11393 static IntRange GetExprRange(ASTContext &C, const Expr *E, in GetExprRange()
11484 PromotedRange(IntRange R, unsigned BitWidth, bool Unsigned) { in PromotedRange()
11641 IntRange OtherValueRange = GetExprRange( in CheckTautologicalComparison()
11647 IntRange OtherTypeRange = IntRange::forValueOfType(S.Context, OtherT); in CheckTautologicalComparison()
11660 OtherTypeRange = OtherValueRange = IntRange::forBoolType(); in CheckTautologicalComparison()
11855 IntRange signedRange = GetExprRange( in AnalyzeComparison()
11873 IntRange unsignedRange = in AnalyzeComparison()
12246 IntRange Range) { in PrettyPrintInRange()
12765 IntRange SourceRange = GetExprRange(S.Context, E, S.isConstantEvaluated(), in CheckImplicitConversion()
12832 IntRange SourceTypeRange = in CheckImplicitConversion()
12833 IntRange::forTargetOfCanonicalType(S.Context, Source); in CheckImplicitConversion()
12834 IntRange LikelySourceRange = in CheckImplicitConversion()
12836 IntRange TargetRange = IntRange::forTargetOfCanonicalType(S.Context, Target); in CheckImplicitConversion()