Lines Matching refs:TheCall
26 CallExpr *TheCall) { in BuiltinARMMemoryTaggingCall() argument
30 if (SemaRef.checkArgCount(TheCall, 2)) in BuiltinARMMemoryTaggingCall()
32 Expr *Arg0 = TheCall->getArg(0); in BuiltinARMMemoryTaggingCall()
33 Expr *Arg1 = TheCall->getArg(1); in BuiltinARMMemoryTaggingCall()
40 return Diag(TheCall->getBeginLoc(), diag::err_memtag_arg_must_be_pointer) in BuiltinARMMemoryTaggingCall()
42 TheCall->setArg(0, FirstArg.get()); in BuiltinARMMemoryTaggingCall()
49 return Diag(TheCall->getBeginLoc(), diag::err_memtag_arg_must_be_integer) in BuiltinARMMemoryTaggingCall()
53 TheCall->setType(FirstArgType); in BuiltinARMMemoryTaggingCall()
58 if (SemaRef.checkArgCount(TheCall, 2)) in BuiltinARMMemoryTaggingCall()
61 Expr *Arg0 = TheCall->getArg(0); in BuiltinARMMemoryTaggingCall()
67 return Diag(TheCall->getBeginLoc(), diag::err_memtag_arg_must_be_pointer) in BuiltinARMMemoryTaggingCall()
69 TheCall->setArg(0, FirstArg.get()); in BuiltinARMMemoryTaggingCall()
72 TheCall->setType(FirstArgType); in BuiltinARMMemoryTaggingCall()
75 return SemaRef.BuiltinConstantArgRange(TheCall, 1, 0, 15); in BuiltinARMMemoryTaggingCall()
79 if (SemaRef.checkArgCount(TheCall, 2)) in BuiltinARMMemoryTaggingCall()
81 Expr *Arg0 = TheCall->getArg(0); in BuiltinARMMemoryTaggingCall()
82 Expr *Arg1 = TheCall->getArg(1); in BuiltinARMMemoryTaggingCall()
89 return Diag(TheCall->getBeginLoc(), diag::err_memtag_arg_must_be_pointer) in BuiltinARMMemoryTaggingCall()
94 return Diag(TheCall->getBeginLoc(), diag::err_memtag_arg_must_be_integer) in BuiltinARMMemoryTaggingCall()
96 TheCall->setType(Context.IntTy); in BuiltinARMMemoryTaggingCall()
102 if (SemaRef.checkArgCount(TheCall, 1)) in BuiltinARMMemoryTaggingCall()
104 Expr *Arg0 = TheCall->getArg(0); in BuiltinARMMemoryTaggingCall()
111 return Diag(TheCall->getBeginLoc(), diag::err_memtag_arg_must_be_pointer) in BuiltinARMMemoryTaggingCall()
113 TheCall->setArg(0, FirstArg.get()); in BuiltinARMMemoryTaggingCall()
117 TheCall->setType(FirstArgType); in BuiltinARMMemoryTaggingCall()
122 Expr *ArgA = TheCall->getArg(0); in BuiltinARMMemoryTaggingCall()
123 Expr *ArgB = TheCall->getArg(1); in BuiltinARMMemoryTaggingCall()
141 return Diag(TheCall->getBeginLoc(), diag::err_memtag_arg_null_or_pointer) in BuiltinARMMemoryTaggingCall()
145 return Diag(TheCall->getBeginLoc(), diag::err_memtag_arg_null_or_pointer) in BuiltinARMMemoryTaggingCall()
156 return Diag(TheCall->getBeginLoc(), in BuiltinARMMemoryTaggingCall()
165 return Diag(TheCall->getBeginLoc(), diag::err_memtag_any2arg_pointer) in BuiltinARMMemoryTaggingCall()
176 TheCall->setArg(0, ArgExprA.get()); in BuiltinARMMemoryTaggingCall()
177 TheCall->setArg(1, ArgExprB.get()); in BuiltinARMMemoryTaggingCall()
178 TheCall->setType(Context.LongLongTy); in BuiltinARMMemoryTaggingCall()
187 bool SemaARM::BuiltinARMSpecialReg(unsigned BuiltinID, CallExpr *TheCall, in BuiltinARMSpecialReg() argument
207 Expr *Arg = TheCall->getArg(ArgNum); in BuiltinARMSpecialReg()
213 return Diag(TheCall->getBeginLoc(), diag::err_expr_not_string_literal) in BuiltinARMSpecialReg()
222 return Diag(TheCall->getBeginLoc(), diag::err_arm_invalid_specialreg) in BuiltinARMSpecialReg()
264 return Diag(TheCall->getBeginLoc(), diag::err_arm_invalid_specialreg) in BuiltinARMSpecialReg()
270 if (TheCall->getNumArgs() != 2) in BuiltinARMSpecialReg()
311 return SemaRef.BuiltinConstantArgRange(TheCall, 1, 0, *MaxLimit); in BuiltinARMSpecialReg()
407 CallExpr *TheCall, SmallVector<std::tuple<int, int, int>, 3> &ImmChecks) { in ParseSVEImmChecks() argument
421 Expr *Arg = TheCall->getArg(ArgNum); in ParseSVEImmChecks()
427 if (SemaRef.BuiltinConstantArg(TheCall, ArgNum, Imm)) in ParseSVEImmChecks()
431 return Diag(TheCall->getBeginLoc(), ErrDiag) << Arg->getSourceRange(); in ParseSVEImmChecks()
437 if (SemaRef.BuiltinConstantArgRange(TheCall, ArgNum, 0, 31)) in ParseSVEImmChecks()
441 if (SemaRef.BuiltinConstantArgRange(TheCall, ArgNum, 0, 13)) in ParseSVEImmChecks()
445 if (SemaRef.BuiltinConstantArgRange(TheCall, ArgNum, 1, 16)) in ParseSVEImmChecks()
449 if (SemaRef.BuiltinConstantArgRange(TheCall, ArgNum, 0, 7)) in ParseSVEImmChecks()
453 if (SemaRef.BuiltinConstantArgRange(TheCall, ArgNum, 1, 1)) in ParseSVEImmChecks()
457 if (SemaRef.BuiltinConstantArgRange(TheCall, ArgNum, 1, 3)) in ParseSVEImmChecks()
461 if (SemaRef.BuiltinConstantArgRange(TheCall, ArgNum, 1, 7)) in ParseSVEImmChecks()
465 if (SemaRef.BuiltinConstantArgRange(TheCall, ArgNum, 0, in ParseSVEImmChecks()
470 if (SemaRef.BuiltinConstantArgRange(TheCall, ArgNum, 1, in ParseSVEImmChecks()
475 if (SemaRef.BuiltinConstantArgRange(TheCall, ArgNum, 1, in ParseSVEImmChecks()
480 if (SemaRef.BuiltinConstantArgRange(TheCall, ArgNum, 0, in ParseSVEImmChecks()
485 if (SemaRef.BuiltinConstantArgRange(TheCall, ArgNum, 0, in ParseSVEImmChecks()
490 if (SemaRef.BuiltinConstantArgRange(TheCall, ArgNum, 0, in ParseSVEImmChecks()
495 if (SemaRef.BuiltinConstantArgRange(TheCall, ArgNum, 0, in ParseSVEImmChecks()
513 if (SemaRef.BuiltinConstantArgRange(TheCall, ArgNum, 0, 1)) in ParseSVEImmChecks()
517 if (SemaRef.BuiltinConstantArgRange(TheCall, ArgNum, 0, 2)) in ParseSVEImmChecks()
521 if (SemaRef.BuiltinConstantArgRange(TheCall, ArgNum, 0, 3)) in ParseSVEImmChecks()
525 if (SemaRef.BuiltinConstantArgRange(TheCall, ArgNum, 0, 0)) in ParseSVEImmChecks()
529 if (SemaRef.BuiltinConstantArgRange(TheCall, ArgNum, 0, 15)) in ParseSVEImmChecks()
533 if (SemaRef.BuiltinConstantArgRange(TheCall, ArgNum, 0, 255)) in ParseSVEImmChecks()
537 if (SemaRef.BuiltinConstantArgRange(TheCall, ArgNum, 2, 4) || in ParseSVEImmChecks()
538 SemaRef.BuiltinConstantArgMultiple(TheCall, ArgNum, 2)) in ParseSVEImmChecks()
563 static bool checkArmStreamingBuiltin(Sema &S, CallExpr *TheCall, in checkArmStreamingBuiltin() argument
623 S.Diag(TheCall->getBeginLoc(), diag::err_attribute_arm_sm_incompat_builtin) in checkArmStreamingBuiltin()
624 << TheCall->getSourceRange() << "non-streaming"; in checkArmStreamingBuiltin()
627 S.Diag(TheCall->getBeginLoc(), diag::err_attribute_arm_sm_incompat_builtin) in checkArmStreamingBuiltin()
628 << TheCall->getSourceRange() << "streaming"; in checkArmStreamingBuiltin()
660 CallExpr *TheCall) { in CheckSMEBuiltinFunctionCall() argument
671 checkArmStreamingBuiltin(SemaRef, TheCall, FD, *BuiltinType, BuiltinID)) in CheckSMEBuiltinFunctionCall()
675 Diag(TheCall->getBeginLoc(), in CheckSMEBuiltinFunctionCall()
677 << TheCall->getSourceRange(); in CheckSMEBuiltinFunctionCall()
680 Diag(TheCall->getBeginLoc(), in CheckSMEBuiltinFunctionCall()
682 << TheCall->getSourceRange(); in CheckSMEBuiltinFunctionCall()
696 return ParseSVEImmChecks(TheCall, ImmChecks); in CheckSMEBuiltinFunctionCall()
700 CallExpr *TheCall) { in CheckSVEBuiltinFunctionCall() argument
710 checkArmStreamingBuiltin(SemaRef, TheCall, FD, *BuiltinType, BuiltinID)) in CheckSVEBuiltinFunctionCall()
724 return ParseSVEImmChecks(TheCall, ImmChecks); in CheckSVEBuiltinFunctionCall()
729 CallExpr *TheCall) { in CheckNeonBuiltinFunctionCall() argument
739 if (checkArmStreamingBuiltin(SemaRef, TheCall, FD, ArmNonStreaming, in CheckNeonBuiltinFunctionCall()
763 unsigned ImmArg = TheCall->getNumArgs() - 1; in CheckNeonBuiltinFunctionCall()
765 if (SemaRef.BuiltinConstantArg(TheCall, ImmArg, Result)) in CheckNeonBuiltinFunctionCall()
770 return Diag(TheCall->getBeginLoc(), diag::err_invalid_neon_type_code) in CheckNeonBuiltinFunctionCall()
771 << TheCall->getArg(ImmArg)->getSourceRange(); in CheckNeonBuiltinFunctionCall()
776 Expr *Arg = TheCall->getArg(PtrArgNum); in CheckNeonBuiltinFunctionCall()
813 return SemaRef.BuiltinConstantArgRange(TheCall, i, l, u + l); in CheckNeonBuiltinFunctionCall()
817 CallExpr *TheCall) { in CheckMVEBuiltinFunctionCall() argument
827 CallExpr *TheCall) { in CheckCDEBuiltinFunctionCall() argument
838 return CheckARMCoprocessorImmediate(TI, TheCall->getArg(0), /*WantCDE*/ true); in CheckCDEBuiltinFunctionCall()
867 CallExpr *TheCall, in CheckARMBuiltinExclusiveCall() argument
885 cast<DeclRefExpr>(TheCall->getCallee()->IgnoreParenCasts()); in CheckARMBuiltinExclusiveCall()
888 if (SemaRef.checkArgCount(TheCall, IsLdrex ? 1 : 2)) in CheckARMBuiltinExclusiveCall()
895 Expr *PointerArg = TheCall->getArg(IsLdrex ? 0 : 1); in CheckARMBuiltinExclusiveCall()
933 TheCall->setArg(IsLdrex ? 0 : 1, PointerArg); in CheckARMBuiltinExclusiveCall()
966 TheCall->setType(ValType); in CheckARMBuiltinExclusiveCall()
971 ExprResult ValArg = TheCall->getArg(0); in CheckARMBuiltinExclusiveCall()
977 TheCall->setArg(0, ValArg.get()); in CheckARMBuiltinExclusiveCall()
981 TheCall->setType(Context.IntTy); in CheckARMBuiltinExclusiveCall()
987 CallExpr *TheCall) { in CheckARMBuiltinFunctionCall() argument
992 return CheckARMBuiltinExclusiveCall(BuiltinID, TheCall, 64); in CheckARMBuiltinFunctionCall()
996 return SemaRef.BuiltinConstantArgRange(TheCall, 1, 0, 1) || in CheckARMBuiltinFunctionCall()
997 SemaRef.BuiltinConstantArgRange(TheCall, 2, 0, 1); in CheckARMBuiltinFunctionCall()
1002 return BuiltinARMSpecialReg(BuiltinID, TheCall, 0, 3, false); in CheckARMBuiltinFunctionCall()
1008 return BuiltinARMSpecialReg(BuiltinID, TheCall, 0, 5, true); in CheckARMBuiltinFunctionCall()
1010 if (CheckNeonBuiltinFunctionCall(TI, BuiltinID, TheCall)) in CheckARMBuiltinFunctionCall()
1012 if (CheckMVEBuiltinFunctionCall(BuiltinID, TheCall)) in CheckARMBuiltinFunctionCall()
1014 if (CheckCDEBuiltinFunctionCall(TI, BuiltinID, TheCall)) in CheckARMBuiltinFunctionCall()
1024 return SemaRef.BuiltinConstantArgRange(TheCall, 1, 1, 32); in CheckARMBuiltinFunctionCall()
1026 return SemaRef.BuiltinConstantArgRange(TheCall, 1, 0, 31); in CheckARMBuiltinFunctionCall()
1028 return SemaRef.BuiltinConstantArgRange(TheCall, 1, 1, 16); in CheckARMBuiltinFunctionCall()
1030 return SemaRef.BuiltinConstantArgRange(TheCall, 1, 0, 15); in CheckARMBuiltinFunctionCall()
1033 return SemaRef.BuiltinConstantArgRange(TheCall, 1, 0, 1); in CheckARMBuiltinFunctionCall()
1038 return SemaRef.BuiltinConstantArgRange(TheCall, 0, 0, 15); in CheckARMBuiltinFunctionCall()
1057 return SemaRef.BuiltinConstantArgRange(TheCall, 0, 0, 15) || in CheckARMBuiltinFunctionCall()
1058 CheckARMCoprocessorImmediate(TI, TheCall->getArg(0), in CheckARMBuiltinFunctionCall()
1065 CallExpr *TheCall) { in CheckAArch64BuiltinFunctionCall() argument
1070 return CheckARMBuiltinExclusiveCall(BuiltinID, TheCall, 128); in CheckAArch64BuiltinFunctionCall()
1074 return SemaRef.BuiltinConstantArgRange(TheCall, 1, 0, 1) || in CheckAArch64BuiltinFunctionCall()
1075 SemaRef.BuiltinConstantArgRange(TheCall, 2, 0, 3) || in CheckAArch64BuiltinFunctionCall()
1076 SemaRef.BuiltinConstantArgRange(TheCall, 3, 0, 1) || in CheckAArch64BuiltinFunctionCall()
1077 SemaRef.BuiltinConstantArgRange(TheCall, 4, 0, 1); in CheckAArch64BuiltinFunctionCall()
1084 return BuiltinARMSpecialReg(BuiltinID, TheCall, 0, 5, true); in CheckAArch64BuiltinFunctionCall()
1093 return BuiltinARMMemoryTaggingCall(BuiltinID, TheCall); in CheckAArch64BuiltinFunctionCall()
1100 return BuiltinARMSpecialReg(BuiltinID, TheCall, 0, 5, true); in CheckAArch64BuiltinFunctionCall()
1107 return SemaRef.BuiltinConstantArgRange(TheCall, 0, 0, 0x7fff); in CheckAArch64BuiltinFunctionCall()
1110 return SemaRef.BuiltinConstantArgRange(TheCall, 0, 0, 31); in CheckAArch64BuiltinFunctionCall()
1113 return SemaRef.BuiltinConstantArgRange(TheCall, 0, 0, 0xffff); in CheckAArch64BuiltinFunctionCall()
1116 return SemaRef.BuiltinConstantArgRange(TheCall, 0, 0, 0xffff); in CheckAArch64BuiltinFunctionCall()
1118 if (CheckNeonBuiltinFunctionCall(TI, BuiltinID, TheCall)) in CheckAArch64BuiltinFunctionCall()
1121 if (CheckSVEBuiltinFunctionCall(BuiltinID, TheCall)) in CheckAArch64BuiltinFunctionCall()
1124 if (CheckSMEBuiltinFunctionCall(BuiltinID, TheCall)) in CheckAArch64BuiltinFunctionCall()
1138 return SemaRef.BuiltinConstantArgRange(TheCall, i, l, u + l); in CheckAArch64BuiltinFunctionCall()