Lines Matching refs:IntRange

9517 struct IntRange {  struct
9524 IntRange(unsigned Width, bool NonNegative) in IntRange() function
9528 static IntRange forBoolType() { in forBoolType() argument
9529 return IntRange(1, true); in forBoolType()
9533 static IntRange forValueOfType(ASTContext &C, QualType T) { in forValueOfType() argument
9539 static IntRange forValueOfCanonicalType(ASTContext &C, const Type *T) { in forValueOfCanonicalType() argument
9559 return IntRange(C.getIntWidth(QualType(T, 0)), in forValueOfCanonicalType()
9567 return IntRange(NumPositive, true/*NonNegative*/); in forValueOfCanonicalType()
9569 return IntRange(std::max(NumPositive + 1, NumNegative), in forValueOfCanonicalType()
9576 return IntRange(C.getIntWidth(QualType(T, 0)), BT->isUnsignedInteger()); in forValueOfCanonicalType()
9584 static IntRange forTargetOfCanonicalType(ASTContext &C, const Type *T) { in forTargetOfCanonicalType() argument
9599 return IntRange(C.getIntWidth(QualType(T, 0)), BT->isUnsignedInteger()); in forTargetOfCanonicalType()
9603 static IntRange join(IntRange L, IntRange R) { in join() argument
9604 return IntRange(std::max(L.Width, R.Width), in join()
9609 static IntRange meet(IntRange L, IntRange R) { in meet() argument
9610 return IntRange(std::min(L.Width, R.Width), in meet()
9617 static IntRange GetValueRange(ASTContext &C, llvm::APSInt &value, in GetValueRange()
9620 return IntRange(value.getMinSignedBits(), false); in GetValueRange()
9627 return IntRange(value.getActiveBits(), true); in GetValueRange()
9630 static IntRange GetValueRange(ASTContext &C, APValue &result, QualType Ty, in GetValueRange()
9636 IntRange R = GetValueRange(C, result.getVectorElt(0), Ty, MaxWidth); in GetValueRange()
9638 IntRange El = GetValueRange(C, result.getVectorElt(i), Ty, MaxWidth); in GetValueRange()
9639 R = IntRange::join(R, El); in GetValueRange()
9645 IntRange R = GetValueRange(C, result.getComplexIntReal(), MaxWidth); in GetValueRange()
9646 IntRange I = GetValueRange(C, result.getComplexIntImag(), MaxWidth); in GetValueRange()
9647 return IntRange::join(R, I); in GetValueRange()
9656 return IntRange(MaxWidth, Ty->isUnsignedIntegerOrEnumerationType()); in GetValueRange()
9670 static IntRange GetExprRange(ASTContext &C, const Expr *E, unsigned MaxWidth) { in GetExprRange()
9685 IntRange OutputTypeRange = IntRange::forValueOfType(C, GetExprType(CE)); in GetExprRange()
9694 IntRange SubRange in GetExprRange()
9704 return IntRange(SubRange.Width, in GetExprRange()
9717 IntRange L = GetExprRange(C, CO->getTrueExpr(), MaxWidth); in GetExprRange()
9718 IntRange R = GetExprRange(C, CO->getFalseExpr(), MaxWidth); in GetExprRange()
9719 return IntRange::join(L, R); in GetExprRange()
9736 return IntRange::forBoolType(); in GetExprRange()
9748 return IntRange::forValueOfType(C, GetExprType(E)); in GetExprRange()
9759 return IntRange::forValueOfType(C, GetExprType(E)); in GetExprRange()
9764 return IntRange::meet(GetExprRange(C, BO->getLHS(), MaxWidth), in GetExprRange()
9774 IntRange R = IntRange::forValueOfType(C, GetExprType(E)); in GetExprRange()
9775 return IntRange(R.Width, /*NonNegative*/ true); in GetExprRange()
9781 return IntRange::forValueOfType(C, GetExprType(E)); in GetExprRange()
9786 IntRange L = GetExprRange(C, BO->getLHS(), MaxWidth); in GetExprRange()
9810 return IntRange::forValueOfType(C, GetExprType(E)); in GetExprRange()
9818 IntRange L = GetExprRange(C, BO->getLHS(), opWidth); in GetExprRange()
9832 IntRange R = GetExprRange(C, BO->getRHS(), opWidth); in GetExprRange()
9833 return IntRange(L.Width, L.NonNegative && R.NonNegative); in GetExprRange()
9841 IntRange L = GetExprRange(C, BO->getLHS(), opWidth); in GetExprRange()
9842 IntRange R = GetExprRange(C, BO->getRHS(), opWidth); in GetExprRange()
9844 IntRange meet = IntRange::meet(L, R); in GetExprRange()
9859 IntRange L = GetExprRange(C, BO->getLHS(), MaxWidth); in GetExprRange()
9860 IntRange R = GetExprRange(C, BO->getRHS(), MaxWidth); in GetExprRange()
9861 return IntRange::join(L, R); in GetExprRange()
9868 return IntRange::forBoolType(); in GetExprRange()
9873 return IntRange::forValueOfType(C, GetExprType(E)); in GetExprRange()
9884 return IntRange(BitField->getBitWidthValue(C), in GetExprRange()
9887 return IntRange::forValueOfType(C, GetExprType(E)); in GetExprRange()
9890 static IntRange GetExprRange(ASTContext &C, const Expr *E) { in GetExprRange()
9971 PromotedRange(IntRange R, unsigned BitWidth, bool Unsigned) { in PromotedRange()
10133 IntRange OtherRange = IntRange::forValueOfType(S.Context, OtherT); in CheckTautologicalComparison()
10140 OtherRange = IntRange::forBoolType(); in CheckTautologicalComparison()
10289 IntRange signedRange = GetExprRange(S.Context, signedOperand); in AnalyzeComparison()
10306 IntRange unsignedRange = GetExprRange(S.Context, unsignedOperand); in AnalyzeComparison()
10641 IntRange Range) { in PrettyPrintInRange()
11028 IntRange SourceRange = GetExprRange(S.Context, E); in CheckImplicitConversion()
11029 IntRange TargetRange = IntRange::forTargetOfCanonicalType(S.Context, Target); in CheckImplicitConversion()