Lines Matching refs:Context

29                                                      ClangTidyContext *Context)  in NarrowingConversionsCheck()  argument
30 : ClangTidyCheck(Name, Context), in NarrowingConversionsCheck()
191 static bool getIntegerConstantExprValue(const ASTContext &Context, in getIntegerConstantExprValue() argument
193 APValue Constant = getConstantExprValue(Context, E); in getIntegerConstantExprValue()
200 static bool getFloatingConstantExprValue(const ASTContext &Context, in getFloatingConstantExprValue() argument
202 APValue Constant = getConstantExprValue(Context, E); in getFloatingConstantExprValue()
228 static IntegerRange createFromType(const ASTContext &Context, in createFromType() argument
232 Context.getFloatTypeSemantics(T.desugar())); in createFromType()
250 uint64_t TypeSize = Context.getTypeSize(&T); in createFromType()
256 static bool isWideEnoughToHold(const ASTContext &Context, in isWideEnoughToHold() argument
259 IntegerRange FromIntegerRange = createFromType(Context, FromType); in isWideEnoughToHold()
260 IntegerRange ToIntegerRange = createFromType(Context, ToType); in isWideEnoughToHold()
264 static bool isWideEnoughToHold(const ASTContext &Context, in isWideEnoughToHold() argument
267 IntegerRange ToIntegerRange = createFromType(Context, ToType); in isWideEnoughToHold()
274 static bool isFloatExactlyRepresentable(const ASTContext &Context, in isFloatExactlyRepresentable() argument
277 unsigned DestWidth = Context.getIntWidth(DestType); in isFloatExactlyRepresentable()
304 const ASTContext &Context, const BuiltinType &FromType, in isWarningInhibitedByEquivalentSize() argument
309 uint64_t FromTypeSize = Context.getTypeSize(&FromType); in isWarningInhibitedByEquivalentSize()
310 uint64_t ToTypeSize = Context.getTypeSize(&ToType); in isWarningInhibitedByEquivalentSize()
365 const ASTContext &Context, SourceLocation SourceLoc, const Expr &Lhs, in diagNarrowTypeOrConstant() argument
367 APValue Constant = getConstantExprValue(Context, Rhs); in diagNarrowTypeOrConstant()
375 void NarrowingConversionsCheck::handleIntegralCast(const ASTContext &Context, in handleIntegralCast() argument
393 uint64_t FromTypeSize = Context.getTypeSize(FromType); in handleIntegralCast()
394 uint64_t ToTypeSize = Context.getTypeSize(ToType); in handleIntegralCast()
400 if (getIntegerConstantExprValue(Context, Rhs, IntegerConstant)) { in handleIntegralCast()
401 if (!isWideEnoughToHold(Context, IntegerConstant, *ToType)) in handleIntegralCast()
404 Context.getTypeSize(FromType)); in handleIntegralCast()
407 if (!isWideEnoughToHold(Context, *FromType, *ToType)) in handleIntegralCast()
413 const ASTContext &Context, SourceLocation SourceLoc, const Expr &Lhs, in handleIntegralToBoolean() argument
423 const ASTContext &Context, SourceLocation SourceLoc, const Expr &Lhs, in handleIntegralToFloating() argument
428 if (getIntegerConstantExprValue(Context, Rhs, IntegerConstant)) { in handleIntegralToFloating()
429 if (!isWideEnoughToHold(Context, IntegerConstant, *ToType)) in handleIntegralToFloating()
435 if (isWarningInhibitedByEquivalentSize(Context, *FromType, *ToType)) in handleIntegralToFloating()
437 if (!isWideEnoughToHold(Context, *FromType, *ToType)) in handleIntegralToFloating()
443 const ASTContext &Context, SourceLocation SourceLoc, const Expr &Lhs, in handleFloatingToIntegral() argument
446 if (getFloatingConstantExprValue(Context, Rhs, FloatConstant)) { in handleFloatingToIntegral()
447 if (!isFloatExactlyRepresentable(Context, FloatConstant, Lhs.getType())) in handleFloatingToIntegral()
458 if (isWarningInhibitedByEquivalentSize(Context, *FromType, *ToType)) in handleFloatingToIntegral()
464 const ASTContext &Context, SourceLocation SourceLoc, const Expr &Lhs, in handleFloatingToBoolean() argument
466 return diagNarrowTypeOrConstant(Context, SourceLoc, Lhs, Rhs); in handleFloatingToBoolean()
470 const ASTContext &Context, SourceLocation SourceLoc, const Expr &Lhs, in handleBooleanToSignedIntegral() argument
479 void NarrowingConversionsCheck::handleFloatingCast(const ASTContext &Context, in handleFloatingCast() argument
485 APValue Constant = getConstantExprValue(Context, Rhs); in handleFloatingCast()
493 Tmp.convert(Context.getFloatTypeSemantics(ToType->desugar()), in handleFloatingCast()
505 void NarrowingConversionsCheck::handleBinaryOperator(const ASTContext &Context, in handleBinaryOperator() argument
516 return handleBooleanToSignedIntegral(Context, SourceLoc, Lhs, Rhs); in handleBinaryOperator()
518 return handleIntegralToBoolean(Context, SourceLoc, Lhs, Rhs); in handleBinaryOperator()
520 return handleIntegralToFloating(Context, SourceLoc, Lhs, Rhs); in handleBinaryOperator()
522 return handleIntegralCast(Context, SourceLoc, Lhs, Rhs); in handleBinaryOperator()
524 return handleFloatingToBoolean(Context, SourceLoc, Lhs, Rhs); in handleBinaryOperator()
526 return handleFloatingToIntegral(Context, SourceLoc, Lhs, Rhs); in handleBinaryOperator()
528 return handleFloatingCast(Context, SourceLoc, Lhs, Rhs); in handleBinaryOperator()
532 const ASTContext &Context, const Expr &Lhs, const Expr &Rhs) { in handleConditionalOperator() argument
537 handleBinaryOperator(Context, CO->getLHS()->getExprLoc(), Lhs, in handleConditionalOperator()
539 handleBinaryOperator(Context, CO->getRHS()->getExprLoc(), Lhs, in handleConditionalOperator()
547 const ASTContext &Context, const ImplicitCastExpr &Cast) { in handleImplicitCast() argument
554 if (handleConditionalOperator(Context, Lhs, Rhs)) in handleImplicitCast()
559 return handleBooleanToSignedIntegral(Context, SourceLoc, Lhs, Rhs); in handleImplicitCast()
561 return handleIntegralToBoolean(Context, SourceLoc, Lhs, Rhs); in handleImplicitCast()
563 return handleIntegralToFloating(Context, SourceLoc, Lhs, Rhs); in handleImplicitCast()
565 return handleIntegralCast(Context, SourceLoc, Lhs, Rhs); in handleImplicitCast()
567 return handleFloatingToBoolean(Context, SourceLoc, Lhs, Rhs); in handleImplicitCast()
569 return handleFloatingToIntegral(Context, SourceLoc, Lhs, Rhs); in handleImplicitCast()
571 return handleFloatingCast(Context, SourceLoc, Lhs, Rhs); in handleImplicitCast()
577 void NarrowingConversionsCheck::handleBinaryOperator(const ASTContext &Context, in handleBinaryOperator() argument
585 if (handleConditionalOperator(Context, Lhs, Rhs)) in handleBinaryOperator()
587 handleBinaryOperator(Context, Rhs.getBeginLoc(), Lhs, Rhs); in handleBinaryOperator()
592 return handleBinaryOperator(*Result.Context, *Op); in check()
594 return handleImplicitCast(*Result.Context, *Cast); in check()