Lines Matching refs:ParamType
4281 QualType ParamType, Expr *Arg) {
4285 if (!S.isCompleteType(Arg->getExprLoc(), ParamType))
4336 if (S.Context.hasSameUnqualifiedType(Arg->getType(), ParamType) ||
4337 S.IsQualificationConversion(Arg->getType(), ParamType, false,
4344 << Arg->getType() << ParamType << Arg->getSourceRange();
4352 std::string Code = "static_cast<" + ParamType.getAsString() + ">(";
4354 << ParamType << FixItHint::CreateInsertion(Arg->getLocStart(), Code)
4370 Sema &S, NonTypeTemplateParmDecl *Param, QualType ParamType, Expr *ArgIn,
4373 if (ParamType->isPointerType() &&
4374 !ParamType->getAs<PointerType>()->getPointeeType()->isFunctionType() &&
4375 S.IsQualificationConversion(ArgType, ParamType, false,
4380 if (const ReferenceType *ParamRef = ParamType->getAs<ReferenceType>()) {
4397 << ParamType << Arg->getType() << Arg->getSourceRange();
4408 ParamType.getNonReferenceType())) {
4410 if (ParamType->isReferenceType())
4412 << ParamType << ArgIn->getType() << Arg->getSourceRange();
4415 << ArgIn->getType() << ParamType << Arg->getSourceRange();
4429 QualType ParamType,
4527 if (ParamType->isPointerType() || ParamType->isNullPtrType()) {
4534 NPV = isNullPointerValueTemplateArgument(S, Param, ParamType, ArgIn);
4538 Converted = TemplateArgument(S.Context.getCanonicalType(ParamType),
4558 if (CheckTemplateArgumentIsCompatibleWithParameter(S, Param, ParamType,
4621 if (ParamType->isPointerType() && !AddressTaken)
4623 else if (AddressTaken && ParamType->isReferenceType()) {
4628 ParamType.getNonReferenceType())) {
4630 << ParamType;
4636 << ParamType
4662 if (ParamType->isReferenceType()) {
4668 ParamType.getNonReferenceType())) {
4670 << ParamType;
4676 << ParamType
4682 } else if (!AddressTaken && ParamType->isPointerType()) {
4691 if (!S.Context.hasSameUnqualifiedType(ArgType, ParamType)) {
4693 << ParamType;
4699 << ParamType
4707 if (CheckTemplateArgumentIsCompatibleWithParameter(S, Param, ParamType, ArgIn,
4713 TemplateArgument(cast<ValueDecl>(Entity->getCanonicalDecl()), ParamType);
4722 QualType ParamType,
4729 switch (isNullPointerValueTemplateArgument(S, Param, ParamType, Arg)) {
4734 Converted = TemplateArgument(S.Context.getCanonicalType(ParamType),
4743 ParamType.getNonReferenceType(),
4745 Arg = S.ImpCastExprToType(Arg, ParamType, CK_NoOp,
4749 ParamType.getNonReferenceType())) {
4752 << Arg->getType() << ParamType << Arg->getSourceRange();
4806 Converted = TemplateArgument(VD, ParamType);
4835 Converted = TemplateArgument(D, ParamType);
4853 /// returns the converted template argument. \p ParamType is the
4856 QualType ParamType, Expr *Arg,
4863 if (ParamType->isDependentType() || Arg->isTypeDependent()) {
4870 assert(!ParamType.hasQualifiers() &&
4874 !Context.hasSameUnqualifiedType(ParamType, Arg->getType())) {
4885 << ParamType.getUnqualifiedType();
4903 Arg, ParamType, Value, CCEK_TemplateArg);
4907 QualType CanonParamType = Context.getCanonicalType(ParamType);
4912 assert(ParamType->isNullPtrType());
4916 assert(ParamType->isIntegralOrEnumerationType());
4920 assert(ParamType->isMemberPointerType());
4926 << Value.getMemberPointerDecl() << ParamType
4939 assert(ParamType->isPointerType() || ParamType->isReferenceType() ||
4940 ParamType->isNullPtrType());
4960 !Value.isLValueOnePastTheEnd() && ParamType->isPointerType()) {
4967 << Value.getAsString(Context, ParamType);
4970 assert((VD || !ParamType->isReferenceType()) &&
4972 assert((!VD || !ParamType->isNullPtrType()) &&
4999 if (ParamType->isIntegralOrEnumerationType()) {
5028 CheckConvertedConstantExpression(Arg, ParamType, Value,
5036 QualType IntegerType = ParamType;
5042 Context.getCanonicalType(ParamType));
5092 if (Context.hasSameType(ParamType, ArgType)) {
5094 } else if (ParamType->isBooleanType()) {
5096 Arg = ImpCastExprToType(Arg, ParamType, CK_IntegralToBoolean).get();
5097 } else if (IsIntegralPromotion(Arg, ArgType, ParamType) ||
5098 !ParamType->isEnumeralType()) {
5100 Arg = ImpCastExprToType(Arg, ParamType, CK_IntegralCast).get();
5105 << Arg->getType() << ParamType << Arg->getSourceRange();
5120 QualType IntegerType = Context.getCanonicalType(ParamType);
5124 if (ParamType->isBooleanType()) {
5168 ParamType->isEnumeralType()
5169 ? Context.getCanonicalType(ParamType)
5184 (ParamType->isPointerType() &&
5185 ParamType->getAs<PointerType>()->getPointeeType()->isFunctionType()) ||
5190 (ParamType->isReferenceType() &&
5191 ParamType->getAs<ReferenceType>()->getPointeeType()->isFunctionType()) ||
5197 (ParamType->isMemberPointerType() &&
5198 ParamType->getAs<MemberPointerType>()->getPointeeType()
5202 if (FunctionDecl *Fn = ResolveAddressOfOverloadedFunction(Arg, ParamType,
5214 if (!ParamType->isMemberPointerType()) {
5216 ParamType,
5222 if (CheckTemplateArgumentPointerToMember(*this, Param, ParamType, Arg,
5228 if (ParamType->isPointerType()) {
5233 assert(ParamType->getPointeeType()->isIncompleteOrObjectType() &&
5237 ParamType,
5243 if (const ReferenceType *ParamRefType = ParamType->getAs<ReferenceType>()) {
5268 ParamType,
5275 if (ParamType->isNullPtrType()) {
5281 switch (isNullPointerValueTemplateArgument(*this, Param, ParamType, Arg)) {
5284 << Arg->getType() << ParamType;
5293 Converted = TemplateArgument(Context.getCanonicalType(ParamType),
5301 assert(ParamType->isMemberPointerType() && "Only pointers to members remain");
5303 if (CheckTemplateArgumentPointerToMember(*this, Param, ParamType, Arg,
5364 QualType ParamType,
5371 if (ParamType->isArrayType())
5372 ParamType = Context.getArrayDecayedType(ParamType);
5373 else if (ParamType->isFunctionType())
5374 ParamType = Context.getPointerType(ParamType);
5381 ParamType,
5382 ParamType->getAs<MemberPointerType>()
5399 if (ParamType->isMemberPointerType()) {
5430 ParamType.getUnqualifiedType(), false,
5432 RefExpr = ImpCastExprToType(RefExpr.get(), ParamType.getUnqualifiedType(), CK_NoOp);
5436 ParamType.getUnqualifiedType()));
5443 if (ParamType->isPointerType()) {
5468 if (const ReferenceType *TargetRef = ParamType->getAs<ReferenceType>()) {