Lines Matching refs:TheCall
898 bool CheckVectorElementCallArgs(Sema *S, CallExpr *TheCall) { in CheckVectorElementCallArgs() argument
899 assert(TheCall->getNumArgs() > 1); in CheckVectorElementCallArgs()
900 ExprResult A = TheCall->getArg(0); in CheckVectorElementCallArgs()
905 SourceLocation BuiltinLoc = TheCall->getBeginLoc(); in CheckVectorElementCallArgs()
907 for (unsigned i = 1; i < TheCall->getNumArgs(); ++i) { in CheckVectorElementCallArgs()
908 ExprResult B = TheCall->getArg(i); in CheckVectorElementCallArgs()
919 S->Diag(TheCall->getBeginLoc(), in CheckVectorElementCallArgs()
921 << TheCall->getDirectCallee() << /*useAllTerminology*/ true in CheckVectorElementCallArgs()
930 << TheCall->getDirectCallee() << /*useAllTerminology*/ true in CheckVectorElementCallArgs()
931 << SourceRange(TheCall->getArg(0)->getBeginLoc(), in CheckVectorElementCallArgs()
932 TheCall->getArg(1)->getEndLoc()); in CheckVectorElementCallArgs()
942 << TheCall->getDirectCallee() << /*useAllTerminology*/ true in CheckVectorElementCallArgs()
943 << SourceRange(TheCall->getArg(0)->getBeginLoc(), in CheckVectorElementCallArgs()
944 TheCall->getArg(1)->getEndLoc()); in CheckVectorElementCallArgs()
949 Sema *S, CallExpr *TheCall, QualType ExpectedType, in CheckArgsTypesAreCorrect() argument
951 for (unsigned i = 0; i < TheCall->getNumArgs(); ++i) { in CheckArgsTypesAreCorrect()
952 QualType PassedType = TheCall->getArg(i)->getType(); in CheckArgsTypesAreCorrect()
957 S->Diag(TheCall->getArg(0)->getBeginLoc(), in CheckArgsTypesAreCorrect()
966 bool CheckAllArgsHaveFloatRepresentation(Sema *S, CallExpr *TheCall) { in CheckAllArgsHaveFloatRepresentation() argument
970 return CheckArgsTypesAreCorrect(S, TheCall, S->Context.FloatTy, in CheckAllArgsHaveFloatRepresentation()
974 bool CheckFloatOrHalfRepresentations(Sema *S, CallExpr *TheCall) { in CheckFloatOrHalfRepresentations() argument
982 return CheckArgsTypesAreCorrect(S, TheCall, S->Context.FloatTy, in CheckFloatOrHalfRepresentations()
986 bool CheckNoDoubleVectors(Sema *S, CallExpr *TheCall) { in CheckNoDoubleVectors() argument
992 return CheckArgsTypesAreCorrect(S, TheCall, S->Context.FloatTy, in CheckNoDoubleVectors()
996 bool CheckUnsignedIntRepresentation(Sema *S, CallExpr *TheCall) { in CheckUnsignedIntRepresentation() argument
1000 return CheckArgsTypesAreCorrect(S, TheCall, S->Context.UnsignedIntTy, in CheckUnsignedIntRepresentation()
1004 void SetElementTypeAsReturnType(Sema *S, CallExpr *TheCall, in SetElementTypeAsReturnType() argument
1006 auto *VecTyA = TheCall->getArg(0)->getType()->getAs<VectorType>(); in SetElementTypeAsReturnType()
1010 TheCall->setType(ReturnType); in SetElementTypeAsReturnType()
1015 bool SemaHLSL::CheckBuiltinFunctionCall(unsigned BuiltinID, CallExpr *TheCall) { in CheckBuiltinFunctionCall() argument
1019 if (SemaRef.checkArgCount(TheCall, 1)) in CheckBuiltinFunctionCall()
1024 if (SemaRef.checkArgCount(TheCall, 3)) in CheckBuiltinFunctionCall()
1026 if (CheckVectorElementCallArgs(&SemaRef, TheCall)) in CheckBuiltinFunctionCall()
1029 TheCall, /*CheckForFloatArgs*/ in CheckBuiltinFunctionCall()
1030 TheCall->getArg(0)->getType()->hasFloatingRepresentation())) in CheckBuiltinFunctionCall()
1035 if (SemaRef.checkArgCount(TheCall, 2)) in CheckBuiltinFunctionCall()
1037 if (CheckVectorElementCallArgs(&SemaRef, TheCall)) in CheckBuiltinFunctionCall()
1039 if (SemaRef.BuiltinVectorToScalarMath(TheCall)) in CheckBuiltinFunctionCall()
1041 if (CheckNoDoubleVectors(&SemaRef, TheCall)) in CheckBuiltinFunctionCall()
1046 if (CheckAllArgsHaveFloatRepresentation(&SemaRef, TheCall)) in CheckBuiltinFunctionCall()
1048 if (SemaRef.PrepareBuiltinElementwiseMathOneArgCall(TheCall)) in CheckBuiltinFunctionCall()
1054 if (CheckFloatOrHalfRepresentations(&SemaRef, TheCall)) in CheckBuiltinFunctionCall()
1056 if (SemaRef.PrepareBuiltinElementwiseMathOneArgCall(TheCall)) in CheckBuiltinFunctionCall()
1061 if (CheckFloatOrHalfRepresentations(&SemaRef, TheCall)) in CheckBuiltinFunctionCall()
1063 if (SemaRef.PrepareBuiltinElementwiseMathOneArgCall(TheCall)) in CheckBuiltinFunctionCall()
1065 SetElementTypeAsReturnType(&SemaRef, TheCall, getASTContext().BoolTy); in CheckBuiltinFunctionCall()
1069 if (SemaRef.checkArgCount(TheCall, 3)) in CheckBuiltinFunctionCall()
1071 if (CheckVectorElementCallArgs(&SemaRef, TheCall)) in CheckBuiltinFunctionCall()
1073 if (SemaRef.BuiltinElementwiseTernaryMath(TheCall)) in CheckBuiltinFunctionCall()
1075 if (CheckFloatOrHalfRepresentations(&SemaRef, TheCall)) in CheckBuiltinFunctionCall()
1080 if (SemaRef.checkArgCount(TheCall, 3)) in CheckBuiltinFunctionCall()
1082 if (CheckVectorElementCallArgs(&SemaRef, TheCall)) in CheckBuiltinFunctionCall()
1085 TheCall, /*CheckForFloatArgs*/ in CheckBuiltinFunctionCall()
1086 TheCall->getArg(0)->getType()->hasFloatingRepresentation())) in CheckBuiltinFunctionCall()
1093 if (CheckUnsignedIntRepresentation(&SemaRef, TheCall)) in CheckBuiltinFunctionCall()
1117 if (CheckFloatOrHalfRepresentations(&SemaRef, TheCall)) in CheckBuiltinFunctionCall()