Lines Matching full:call
136 const CallExpr *Call) { in interp__builtin_is_constant_evaluated() argument
166 const CallExpr *Call) { in interp__builtin_strcmp() argument
203 pushInteger(S, Result, Call->getType()); in interp__builtin_strcmp()
209 const CallExpr *Call) { in interp__builtin_strlen() argument
235 pushInteger(S, Len, Call->getType()); in interp__builtin_strlen()
367 const CallExpr *Call) { in interp__builtin_isnan() argument
370 pushInteger(S, Arg.isNan(), Call->getType()); in interp__builtin_isnan()
377 const CallExpr *Call) { in interp__builtin_issignaling() argument
380 pushInteger(S, Arg.isSignaling(), Call->getType()); in interp__builtin_issignaling()
386 bool CheckSign, const CallExpr *Call) { in interp__builtin_isinf() argument
391 pushInteger(S, IsInf ? (Arg.isNegative() ? -1 : 1) : 0, Call->getType()); in interp__builtin_isinf()
393 pushInteger(S, Arg.isInf(), Call->getType()); in interp__builtin_isinf()
399 const Function *F, const CallExpr *Call) { in interp__builtin_isfinite() argument
402 pushInteger(S, Arg.isFinite(), Call->getType()); in interp__builtin_isfinite()
408 const Function *F, const CallExpr *Call) { in interp__builtin_isnormal() argument
411 pushInteger(S, Arg.isNormal(), Call->getType()); in interp__builtin_isnormal()
418 const CallExpr *Call) { in interp__builtin_issubnormal() argument
421 pushInteger(S, Arg.isDenormal(), Call->getType()); in interp__builtin_issubnormal()
427 const CallExpr *Call) { in interp__builtin_iszero() argument
430 pushInteger(S, Arg.isZero(), Call->getType()); in interp__builtin_iszero()
439 const CallExpr *Call) { in interp__builtin_isfpclass() argument
440 PrimType FPClassArgT = *S.getContext().classify(Call->getArg(1)->getType()); in interp__builtin_isfpclass()
447 pushInteger(S, Result, Call->getType()); in interp__builtin_isfpclass()
456 const CallExpr *Call) { in interp__builtin_fpclassify() argument
482 pushInteger(S, I, Call->getType()); in interp__builtin_fpclassify()
503 const CallExpr *Call) { in interp__builtin_popcount() argument
504 PrimType ArgT = *S.getContext().classify(Call->getArg(0)->getType()); in interp__builtin_popcount()
506 pushInteger(S, Val.popcount(), Call->getType()); in interp__builtin_popcount()
512 const Function *Func, const CallExpr *Call) { in interp__builtin_parity() argument
513 PrimType ArgT = *S.getContext().classify(Call->getArg(0)->getType()); in interp__builtin_parity()
515 pushInteger(S, Val.popcount() % 2, Call->getType()); in interp__builtin_parity()
521 const Function *Func, const CallExpr *Call) { in interp__builtin_clrsb() argument
522 PrimType ArgT = *S.getContext().classify(Call->getArg(0)->getType()); in interp__builtin_clrsb()
524 pushInteger(S, Val.getBitWidth() - Val.getSignificantBits(), Call->getType()); in interp__builtin_clrsb()
531 const CallExpr *Call) { in interp__builtin_bitreverse() argument
532 PrimType ArgT = *S.getContext().classify(Call->getArg(0)->getType()); in interp__builtin_bitreverse()
534 pushInteger(S, Val.reverseBits(), Call->getType()); in interp__builtin_bitreverse()
541 const CallExpr *Call) { in interp__builtin_classify_type() argument
542 // This is an unevaluated call, so there are no arguments on the stack. in interp__builtin_classify_type()
543 assert(Call->getNumArgs() == 1); in interp__builtin_classify_type()
544 const Expr *Arg = Call->getArg(0); in interp__builtin_classify_type()
549 pushInteger(S, ReturnVal, Call->getType()); in interp__builtin_classify_type()
557 const Function *Func, const CallExpr *Call) { in interp__builtin_expect() argument
560 unsigned NumArgs = Call->getNumArgs(); in interp__builtin_expect()
563 PrimType ArgT = *S.getContext().classify(Call->getArg(0)->getType()); in interp__builtin_expect()
569 pushInteger(S, Val, Call->getType()); in interp__builtin_expect()
576 const Function *Func, const CallExpr *Call, in interp__builtin_rotate() argument
578 PrimType AmountT = *S.getContext().classify(Call->getArg(1)->getType()); in interp__builtin_rotate()
579 PrimType ValueT = *S.getContext().classify(Call->getArg(0)->getType()); in interp__builtin_rotate()
593 pushInteger(S, Result, Call->getType()); in interp__builtin_rotate()
599 const CallExpr *Call) { in interp__builtin_ffs() argument
600 PrimType ArgT = *S.getContext().classify(Call->getArg(0)->getType()); in interp__builtin_ffs()
604 pushInteger(S, N == Value.getBitWidth() ? 0 : N + 1, Call->getType()); in interp__builtin_ffs()
611 const CallExpr *Call) { in interp__builtin_addressof() argument
612 assert(Call->getArg(0)->isLValue()); in interp__builtin_addressof()
613 PrimType PtrT = S.getContext().classify(Call->getArg(0)).value_or(PT_Ptr); in interp__builtin_addressof()
629 const CallExpr *Call) { in interp__builtin_move() argument
631 PrimType ArgT = S.getContext().classify(Call->getArg(0)).value_or(PT_Ptr); in interp__builtin_move()
641 const CallExpr *Call) { in interp__builtin_eh_return_data_regno() argument
642 PrimType ArgT = *S.getContext().classify(Call->getArg(0)->getType()); in interp__builtin_eh_return_data_regno()
647 pushInteger(S, Result, Call->getType()); in interp__builtin_eh_return_data_regno()
651 /// Just takes the first Argument to the call and puts it on the stack.
653 const Function *Func, const CallExpr *Call) { in noopPointer() argument
663 const CallExpr *Call) { in interp__builtin_overflowop() argument
669 PrimType RHST = *S.getContext().classify(Call->getArg(1)->getType()); in interp__builtin_overflowop()
670 PrimType LHST = *S.getContext().classify(Call->getArg(0)->getType()); in interp__builtin_overflowop()
676 QualType ResultType = Call->getArg(2)->getType()->getPointeeType(); in interp__builtin_overflowop()
770 const CallExpr *Call) { in interp__builtin_carryop() argument
772 PrimType LHST = *S.getContext().classify(Call->getArg(0)->getType()); in interp__builtin_carryop()
773 PrimType RHST = *S.getContext().classify(Call->getArg(1)->getType()); in interp__builtin_carryop()
774 PrimType CarryT = *S.getContext().classify(Call->getArg(2)->getType()); in interp__builtin_carryop()
818 QualType CarryOutType = Call->getArg(3)->getType()->getPointeeType(); in interp__builtin_carryop()
823 assert(Call->getType() == Call->getArg(0)->getType()); in interp__builtin_carryop()
824 pushInteger(S, Result, Call->getType()); in interp__builtin_carryop()
830 const CallExpr *Call) { in interp__builtin_clz() argument
831 unsigned CallSize = callArgSize(S, Call); in interp__builtin_clz()
833 PrimType ValT = *S.getContext().classify(Call->getArg(0)); in interp__builtin_clz()
844 Call->getNumArgs() == 2) { in interp__builtin_clz()
846 PrimType FallbackT = *S.getContext().classify(Call->getArg(1)); in interp__builtin_clz()
848 pushInteger(S, Fallback, Call->getType()); in interp__builtin_clz()
856 pushInteger(S, Val.countl_zero(), Call->getType()); in interp__builtin_clz()
862 const CallExpr *Call) { in interp__builtin_ctz() argument
863 unsigned CallSize = callArgSize(S, Call); in interp__builtin_ctz()
864 PrimType ValT = *S.getContext().classify(Call->getArg(0)); in interp__builtin_ctz()
869 Call->getNumArgs() == 2) { in interp__builtin_ctz()
871 PrimType FallbackT = *S.getContext().classify(Call->getArg(1)); in interp__builtin_ctz()
873 pushInteger(S, Fallback, Call->getType()); in interp__builtin_ctz()
879 pushInteger(S, Val.countr_zero(), Call->getType()); in interp__builtin_ctz()
885 const Function *Func, const CallExpr *Call) { in interp__builtin_bswap() argument
886 PrimType ReturnT = *S.getContext().classify(Call->getType()); in interp__builtin_bswap()
887 PrimType ValT = *S.getContext().classify(Call->getArg(0)); in interp__builtin_bswap()
902 const CallExpr *Call) { in interp__builtin_atomic_lock_free() argument
905 PrimType ValT = *S.getContext().classify(Call->getArg(0)); in interp__builtin_atomic_lock_free()
945 QualType PointeeType = Call->getArg(1) in interp__builtin_atomic_lock_free()
967 const CallExpr *Call) { in interp__builtin_complex() argument
990 const CallExpr *Call) { in interp__builtin_is_aligned_up_down() argument
992 unsigned CallSize = callArgSize(S, Call); in interp__builtin_is_aligned_up_down()
994 PrimType AlignmentT = *S.Ctx.classify(Call->getArg(1)); in interp__builtin_is_aligned_up_down()
998 S.FFDiag(Call, diag::note_constexpr_invalid_alignment) << Alignment; in interp__builtin_is_aligned_up_down()
1001 unsigned SrcWidth = S.getCtx().getIntWidth(Call->getArg(0)->getType()); in interp__builtin_is_aligned_up_down()
1004 S.FFDiag(Call, diag::note_constexpr_alignment_too_big) in interp__builtin_is_aligned_up_down()
1005 << MaxValue << Call->getArg(0)->getType() << Alignment; in interp__builtin_is_aligned_up_down()
1011 PrimType FirstArgT = *S.Ctx.classify(Call->getArg(0)); in interp__builtin_is_aligned_up_down()
1019 pushInteger(S, AlignedVal, Call->getType()); in interp__builtin_is_aligned_up_down()
1022 pushInteger(S, AlignedVal, Call->getType()); in interp__builtin_is_aligned_up_down()
1024 assert(*S.Ctx.classify(Call->getType()) == PT_Bool); in interp__builtin_is_aligned_up_down()
1055 S.FFDiag(Call->getArg(0), diag::note_constexpr_alignment_compute) in interp__builtin_is_aligned_up_down()
1089 S.FFDiag(Call->getArg(0), diag::note_constexpr_alignment_adjust) << Alignment; in interp__builtin_is_aligned_up_down()
1097 const CallExpr *Call) { in interp__builtin_os_log_format_buffer_size() argument
1099 analyze_os_log::computeOSLogBufferLayout(S.getCtx(), Call, Layout); in interp__builtin_os_log_format_buffer_size()
1100 pushInteger(S, Layout.size().getQuantity(), Call->getType()); in interp__builtin_os_log_format_buffer_size()
1106 const Function *Func, const CallExpr *Call) { in interp__builtin_ptrauth_string_discriminator() argument
1112 pushInteger(S, Result, Call->getType()); in interp__builtin_ptrauth_string_discriminator()
1117 const CallExpr *Call) { in InterpretBuiltin() argument
1121 std::optional<PrimType> ReturnT = S.getContext().classify(Call); in InterpretBuiltin()
1125 if (!interp__builtin_is_constant_evaluated(S, OpPC, Frame, Call)) in InterpretBuiltin()
1132 if (!interp__builtin_strcmp(S, OpPC, Frame, Call)) in InterpretBuiltin()
1136 if (!interp__builtin_strlen(S, OpPC, Frame, Call)) in InterpretBuiltin()
1196 if (!interp__builtin_isnan(S, OpPC, Frame, F, Call)) in InterpretBuiltin()
1200 if (!interp__builtin_issignaling(S, OpPC, Frame, F, Call)) in InterpretBuiltin()
1205 if (!interp__builtin_isinf(S, OpPC, Frame, F, /*Sign=*/false, Call)) in InterpretBuiltin()
1210 if (!interp__builtin_isinf(S, OpPC, Frame, F, /*Sign=*/true, Call)) in InterpretBuiltin()
1215 if (!interp__builtin_isfinite(S, OpPC, Frame, F, Call)) in InterpretBuiltin()
1219 if (!interp__builtin_isnormal(S, OpPC, Frame, F, Call)) in InterpretBuiltin()
1223 if (!interp__builtin_issubnormal(S, OpPC, Frame, F, Call)) in InterpretBuiltin()
1227 if (!interp__builtin_iszero(S, OpPC, Frame, F, Call)) in InterpretBuiltin()
1231 if (!interp__builtin_isfpclass(S, OpPC, Frame, F, Call)) in InterpretBuiltin()
1235 if (!interp__builtin_fpclassify(S, OpPC, Frame, F, Call)) in InterpretBuiltin()
1254 if (!interp__builtin_popcount(S, OpPC, Frame, F, Call)) in InterpretBuiltin()
1261 if (!interp__builtin_parity(S, OpPC, Frame, F, Call)) in InterpretBuiltin()
1268 if (!interp__builtin_clrsb(S, OpPC, Frame, F, Call)) in InterpretBuiltin()
1276 if (!interp__builtin_bitreverse(S, OpPC, Frame, F, Call)) in InterpretBuiltin()
1281 if (!interp__builtin_classify_type(S, OpPC, Frame, F, Call)) in InterpretBuiltin()
1287 if (!interp__builtin_expect(S, OpPC, Frame, F, Call)) in InterpretBuiltin()
1300 if (!interp__builtin_rotate(S, OpPC, Frame, F, Call, /*Right=*/false)) in InterpretBuiltin()
1313 if (!interp__builtin_rotate(S, OpPC, Frame, F, Call, /*Right=*/true)) in InterpretBuiltin()
1320 if (!interp__builtin_ffs(S, OpPC, Frame, F, Call)) in InterpretBuiltin()
1326 if (!interp__builtin_addressof(S, OpPC, Frame, F, Call)) in InterpretBuiltin()
1335 if (!interp__builtin_move(S, OpPC, Frame, F, Call)) in InterpretBuiltin()
1340 if (!interp__builtin_eh_return_data_regno(S, OpPC, Frame, F, Call)) in InterpretBuiltin()
1345 if (!noopPointer(S, OpPC, Frame, F, Call)) in InterpretBuiltin()
1370 if (!interp__builtin_overflowop(S, OpPC, Frame, F, Call)) in InterpretBuiltin()
1384 if (!interp__builtin_carryop(S, OpPC, Frame, F, Call)) in InterpretBuiltin()
1396 if (!interp__builtin_clz(S, OpPC, Frame, F, Call)) in InterpretBuiltin()
1405 if (!interp__builtin_ctz(S, OpPC, Frame, F, Call)) in InterpretBuiltin()
1412 if (!interp__builtin_bswap(S, OpPC, Frame, F, Call)) in InterpretBuiltin()
1419 if (!interp__builtin_atomic_lock_free(S, OpPC, Frame, F, Call)) in InterpretBuiltin()
1424 if (!interp__builtin_complex(S, OpPC, Frame, F, Call)) in InterpretBuiltin()
1431 if (!interp__builtin_is_aligned_up_down(S, OpPC, Frame, F, Call)) in InterpretBuiltin()
1436 if (!interp__builtin_os_log_format_buffer_size(S, OpPC, Frame, F, Call)) in InterpretBuiltin()
1441 if (!interp__builtin_ptrauth_string_discriminator(S, OpPC, Frame, F, Call)) in InterpretBuiltin()