• Home
  • Raw
  • Download

Lines Matching refs:Arg

492                                             const ParsedTemplateArgument &Arg) {  in translateTemplateArgument()  argument
494 switch (Arg.getKind()) { in translateTemplateArgument()
497 QualType T = SemaRef.GetTypeFromParser(Arg.getAsType(), &DI); in translateTemplateArgument()
499 DI = SemaRef.Context.getTrivialTypeSourceInfo(T, Arg.getLocation()); in translateTemplateArgument()
504 Expr *E = static_cast<Expr *>(Arg.getAsExpr()); in translateTemplateArgument()
509 TemplateName Template = Arg.getAsTemplate().get(); in translateTemplateArgument()
511 if (Arg.getEllipsisLoc().isValid()) in translateTemplateArgument()
516 Arg.getScopeSpec().getWithLocInContext( in translateTemplateArgument()
518 Arg.getLocation(), in translateTemplateArgument()
519 Arg.getEllipsisLoc()); in translateTemplateArgument()
2443 const TemplateArgument &Arg = AL.getArgument(); in CheckTemplateTypeArgument() local
2446 switch(Arg.getKind()) { in CheckTemplateTypeArgument()
2456 TemplateName Name = Arg.getAsTemplate(); in CheckTemplateTypeArgument()
2470 if (DeclRefExpr *ArgExpr = dyn_cast<DeclRefExpr>(Arg.getAsExpr())) { in CheckTemplateTypeArgument()
2474 dyn_cast<DependentScopeDeclRefExpr>(Arg.getAsExpr())) { in CheckTemplateTypeArgument()
2478 dyn_cast<CXXDependentScopeMemberExpr>(Arg.getAsExpr())) { in CheckTemplateTypeArgument()
2516 QualType ArgType = Context.getCanonicalType(Arg.getAsType()); in CheckTemplateTypeArgument()
2723 ExprResult Arg = SubstDefaultTemplateArgument(*this, Template, in SubstDefaultTemplateArgumentIfAvailable() local
2728 if (Arg.isInvalid()) in SubstDefaultTemplateArgumentIfAvailable()
2731 Expr *ArgE = Arg.takeAs<Expr>(); in SubstDefaultTemplateArgumentIfAvailable()
2783 const TemplateArgumentLoc &Arg, in CheckTemplateArgument() argument
2792 return CheckTemplateTypeArgument(TTP, Arg, Converted); in CheckTemplateArgument()
2828 switch (Arg.getArgument().getKind()) { in CheckTemplateArgument()
2835 CheckTemplateArgument(NTTP, NTTPType, Arg.getArgument().getAsExpr(), in CheckTemplateArgument()
2848 Converted.push_back(Arg.getArgument()); in CheckTemplateArgument()
2856 = Arg.getArgument().getAsTemplateOrTemplatePattern() in CheckTemplateArgument()
2864 Arg.getTemplateNameLoc()); in CheckTemplateArgument()
2867 SS.Adopt(Arg.getTemplateQualifierLoc()); in CheckTemplateArgument()
2879 if (Arg.getArgument().getKind() == TemplateArgument::TemplateExpansion){ in CheckTemplateArgument()
2880 E = ActOnPackExpansion(E.take(), Arg.getTemplateEllipsisLoc()); in CheckTemplateArgument()
2897 Diag(Arg.getLocation(), diag::err_template_arg_must_be_expr) in CheckTemplateArgument()
2898 << Arg.getSourceRange(); in CheckTemplateArgument()
2914 QualType T = Arg.getArgument().getAsType(); in CheckTemplateArgument()
2915 SourceRange SR = Arg.getSourceRange(); in CheckTemplateArgument()
2956 switch (Arg.getArgument().getKind()) { in CheckTemplateArgument()
2962 if (CheckTemplateArgument(TempParm, Arg, ArgumentPackIndex)) in CheckTemplateArgument()
2965 Converted.push_back(Arg.getArgument()); in CheckTemplateArgument()
2972 Diag(Arg.getLocation(), diag::err_template_arg_must_be_template) in CheckTemplateArgument()
3202 TemplateArgumentLoc Arg; in CheckTemplateArgumentList() local
3223 Arg = TemplateArgumentLoc(TemplateArgument(ArgType->getType()), in CheckTemplateArgumentList()
3240 Arg = TemplateArgumentLoc(TemplateArgument(Ex), Ex); in CheckTemplateArgumentList()
3259 Arg = TemplateArgumentLoc(TemplateArgument(Name), QualifierLoc, in CheckTemplateArgumentList()
3272 if (CheckTemplateArgument(*Param, Arg, Template, TemplateLoc, in CheckTemplateArgumentList()
3280 TemplateArgs.addArgument(Arg); in CheckTemplateArgumentList()
3543 QualType Arg = ArgInfo->getType(); in CheckTemplateArgument() local
3546 if (Arg->isVariablyModifiedType()) { in CheckTemplateArgument()
3547 return Diag(SR.getBegin(), diag::err_variably_modified_template_arg) << Arg; in CheckTemplateArgument()
3548 } else if (Context.hasSameUnqualifiedType(Arg, Context.OverloadTy)) { in CheckTemplateArgument()
3564 Arg->hasUnnamedOrLocalType()) { in CheckTemplateArgument()
3566 (void)Finder.Visit(Context.getCanonicalType(Arg)); in CheckTemplateArgument()
3582 QualType ParamType, Expr *Arg) { in isNullPointerValueTemplateArgument() argument
3583 if (Arg->isValueDependent() || Arg->isTypeDependent()) in isNullPointerValueTemplateArgument()
3590 ExprResult ArgRV = S.DefaultFunctionArrayConversion(Arg); in isNullPointerValueTemplateArgument()
3593 Arg = ArgRV.take(); in isNullPointerValueTemplateArgument()
3598 if (!Arg->EvaluateAsRValue(EvalResult, S.Context) || in isNullPointerValueTemplateArgument()
3600 SourceLocation DiagLoc = Arg->getExprLoc(); in isNullPointerValueTemplateArgument()
3612 << Arg->getType() << Arg->getSourceRange(); in isNullPointerValueTemplateArgument()
3622 if (Arg->getType()->isNullPtrType()) in isNullPointerValueTemplateArgument()
3633 if (S.Context.hasSameUnqualifiedType(Arg->getType(), ParamType) || in isNullPointerValueTemplateArgument()
3634 S.IsQualificationConversion(Arg->getType(), ParamType, false, in isNullPointerValueTemplateArgument()
3640 S.Diag(Arg->getExprLoc(), diag::err_template_arg_wrongtype_null_constant) in isNullPointerValueTemplateArgument()
3641 << Arg->getType() << ParamType << Arg->getSourceRange(); in isNullPointerValueTemplateArgument()
3648 if (Arg->isNullPointerConstant(S.Context, Expr::NPC_NeverValueDependent)) { in isNullPointerValueTemplateArgument()
3650 S.Diag(Arg->getExprLoc(), diag::err_template_arg_untyped_null_constant) in isNullPointerValueTemplateArgument()
3652 << FixItHint::CreateInsertion(Arg->getLocStart(), Code) in isNullPointerValueTemplateArgument()
3653 << FixItHint::CreateInsertion(S.PP.getLocForEndOfToken(Arg->getLocEnd()), in isNullPointerValueTemplateArgument()
3674 Expr *Arg = ArgIn; in CheckTemplateArgumentAddressOfObjectOrFunction() local
3675 QualType ArgType = Arg->getType(); in CheckTemplateArgumentAddressOfObjectOrFunction()
3679 switch (isNullPointerValueTemplateArgument(S, Param, ParamType, Arg)) { in CheckTemplateArgumentAddressOfObjectOrFunction()
3681 S.Diag(Arg->getExprLoc(), diag::warn_cxx98_compat_template_arg_null); in CheckTemplateArgumentAddressOfObjectOrFunction()
3694 Arg = Arg->IgnoreImpCasts(); in CheckTemplateArgumentAddressOfObjectOrFunction()
3711 while (ParenExpr *Parens = dyn_cast<ParenExpr>(Arg)) { in CheckTemplateArgumentAddressOfObjectOrFunction()
3713 S.Diag(Arg->getLocStart(), in CheckTemplateArgumentAddressOfObjectOrFunction()
3717 << Arg->getSourceRange(); in CheckTemplateArgumentAddressOfObjectOrFunction()
3721 Arg = Parens->getSubExpr(); in CheckTemplateArgumentAddressOfObjectOrFunction()
3725 dyn_cast<SubstNonTypeTemplateParmExpr>(Arg)) in CheckTemplateArgumentAddressOfObjectOrFunction()
3726 Arg = subst->getReplacement()->IgnoreImpCasts(); in CheckTemplateArgumentAddressOfObjectOrFunction()
3730 if (UnaryOperator *UnOp = dyn_cast<UnaryOperator>(Arg)) { in CheckTemplateArgumentAddressOfObjectOrFunction()
3732 Arg = UnOp->getSubExpr(); in CheckTemplateArgumentAddressOfObjectOrFunction()
3738 if (S.getLangOpts().MicrosoftExt && isa<CXXUuidofExpr>(Arg)) { in CheckTemplateArgumentAddressOfObjectOrFunction()
3744 dyn_cast<SubstNonTypeTemplateParmExpr>(Arg)) in CheckTemplateArgumentAddressOfObjectOrFunction()
3745 Arg = subst->getReplacement()->IgnoreImpCasts(); in CheckTemplateArgumentAddressOfObjectOrFunction()
3749 if (Arg->isValueDependent()) { in CheckTemplateArgumentAddressOfObjectOrFunction()
3754 DeclRefExpr *DRE = dyn_cast<DeclRefExpr>(Arg); in CheckTemplateArgumentAddressOfObjectOrFunction()
3756 S.Diag(Arg->getLocStart(), diag::err_template_arg_not_decl_ref) in CheckTemplateArgumentAddressOfObjectOrFunction()
3757 << Arg->getSourceRange(); in CheckTemplateArgumentAddressOfObjectOrFunction()
3763 S.Diag(Arg->getLocStart(), in CheckTemplateArgumentAddressOfObjectOrFunction()
3765 << Arg->getSourceRange(); in CheckTemplateArgumentAddressOfObjectOrFunction()
3774 S.Diag(Arg->getLocStart(), diag::err_template_arg_field) in CheckTemplateArgumentAddressOfObjectOrFunction()
3775 << Field << Arg->getSourceRange(); in CheckTemplateArgumentAddressOfObjectOrFunction()
3783 S.Diag(Arg->getLocStart(), diag::err_template_arg_method) in CheckTemplateArgumentAddressOfObjectOrFunction()
3784 << Method << Arg->getSourceRange(); in CheckTemplateArgumentAddressOfObjectOrFunction()
3796 S.Diag(Arg->getLocStart(), diag::err_template_arg_not_object_or_func) in CheckTemplateArgumentAddressOfObjectOrFunction()
3797 << Arg->getSourceRange(); in CheckTemplateArgumentAddressOfObjectOrFunction()
3804 S.Diag(Arg->getLocStart(), S.getLangOpts().CPlusPlus0x ? in CheckTemplateArgumentAddressOfObjectOrFunction()
3807 << !Func << Entity << Arg->getSourceRange(); in CheckTemplateArgumentAddressOfObjectOrFunction()
3811 S.Diag(Arg->getLocStart(), diag::err_template_arg_object_no_linkage) in CheckTemplateArgumentAddressOfObjectOrFunction()
3812 << !Func << Entity << Arg->getSourceRange(); in CheckTemplateArgumentAddressOfObjectOrFunction()
3844 S.Diag(Arg->getLocStart(), in CheckTemplateArgumentAddressOfObjectOrFunction()
3846 << Var->getType() << Arg->getSourceRange(); in CheckTemplateArgumentAddressOfObjectOrFunction()
3854 S.Diag(Arg->getLocStart(), diag::err_template_arg_thread_local) in CheckTemplateArgumentAddressOfObjectOrFunction()
3855 << Arg->getSourceRange(); in CheckTemplateArgumentAddressOfObjectOrFunction()
3892 S.Diag(Arg->getLocStart(), diag::err_template_arg_not_address_of) in CheckTemplateArgumentAddressOfObjectOrFunction()
3898 S.Diag(Arg->getLocStart(), diag::err_template_arg_not_address_of) in CheckTemplateArgumentAddressOfObjectOrFunction()
3900 << FixItHint::CreateInsertion(Arg->getLocStart(), "&"); in CheckTemplateArgumentAddressOfObjectOrFunction()
3930 S.Diag(Arg->getLocStart(), in CheckTemplateArgumentAddressOfObjectOrFunction()
3932 << ParamType << Arg->getType() in CheckTemplateArgumentAddressOfObjectOrFunction()
3933 << Arg->getSourceRange(); in CheckTemplateArgumentAddressOfObjectOrFunction()
3947 S.Diag(Arg->getLocStart(), diag::err_template_arg_no_ref_bind) in CheckTemplateArgumentAddressOfObjectOrFunction()
3948 << ParamType << ArgIn->getType() << Arg->getSourceRange(); in CheckTemplateArgumentAddressOfObjectOrFunction()
3950 S.Diag(Arg->getLocStart(), diag::err_template_arg_not_convertible) in CheckTemplateArgumentAddressOfObjectOrFunction()
3951 << ArgIn->getType() << ParamType << Arg->getSourceRange(); in CheckTemplateArgumentAddressOfObjectOrFunction()
3959 S.MarkAnyDeclReferenced(Arg->getLocStart(), Entity); in CheckTemplateArgumentAddressOfObjectOrFunction()
3973 Expr *Arg = ResultArg; in CheckTemplateArgumentPointerToMember() local
3974 switch (isNullPointerValueTemplateArgument(S, Param, ParamType, Arg)) { in CheckTemplateArgumentPointerToMember()
3978 S.Diag(Arg->getExprLoc(), diag::warn_cxx98_compat_template_arg_null); in CheckTemplateArgumentPointerToMember()
3986 if (S.IsQualificationConversion(Arg->getType(), in CheckTemplateArgumentPointerToMember()
3989 Arg = S.ImpCastExprToType(Arg, ParamType, CK_NoOp, in CheckTemplateArgumentPointerToMember()
3990 Arg->getValueKind()).take(); in CheckTemplateArgumentPointerToMember()
3991 ResultArg = Arg; in CheckTemplateArgumentPointerToMember()
3992 } else if (!S.Context.hasSameUnqualifiedType(Arg->getType(), in CheckTemplateArgumentPointerToMember()
3995 S.Diag(Arg->getLocStart(), diag::err_template_arg_not_convertible) in CheckTemplateArgumentPointerToMember()
3996 << Arg->getType() << ParamType << Arg->getSourceRange(); in CheckTemplateArgumentPointerToMember()
4002 while (ImplicitCastExpr *Cast = dyn_cast<ImplicitCastExpr>(Arg)) in CheckTemplateArgumentPointerToMember()
4003 Arg = Cast->getSubExpr(); in CheckTemplateArgumentPointerToMember()
4016 while (ParenExpr *Parens = dyn_cast<ParenExpr>(Arg)) { in CheckTemplateArgumentPointerToMember()
4018 S.Diag(Arg->getLocStart(), in CheckTemplateArgumentPointerToMember()
4022 << Arg->getSourceRange(); in CheckTemplateArgumentPointerToMember()
4026 Arg = Parens->getSubExpr(); in CheckTemplateArgumentPointerToMember()
4030 dyn_cast<SubstNonTypeTemplateParmExpr>(Arg)) in CheckTemplateArgumentPointerToMember()
4031 Arg = subst->getReplacement()->IgnoreImpCasts(); in CheckTemplateArgumentPointerToMember()
4034 if (UnaryOperator *UnOp = dyn_cast<UnaryOperator>(Arg)) { in CheckTemplateArgumentPointerToMember()
4042 else if ((DRE = dyn_cast<DeclRefExpr>(Arg))) { in CheckTemplateArgumentPointerToMember()
4048 if (Arg->isTypeDependent() || Arg->isValueDependent()) in CheckTemplateArgumentPointerToMember()
4049 Converted = TemplateArgument(Arg); in CheckTemplateArgumentPointerToMember()
4061 return S.Diag(Arg->getLocStart(), in CheckTemplateArgumentPointerToMember()
4063 << Arg->getSourceRange(); in CheckTemplateArgumentPointerToMember()
4072 if (Arg->isTypeDependent() || Arg->isValueDependent()) in CheckTemplateArgumentPointerToMember()
4073 Converted = TemplateArgument(Arg); in CheckTemplateArgumentPointerToMember()
4080 S.Diag(Arg->getLocStart(), in CheckTemplateArgumentPointerToMember()
4082 << Arg->getSourceRange(); in CheckTemplateArgumentPointerToMember()
4096 QualType InstantiatedParamType, Expr *Arg, in CheckTemplateArgument() argument
4099 SourceLocation StartLoc = Arg->getLocStart(); in CheckTemplateArgument()
4103 if (InstantiatedParamType->isDependentType() || Arg->isTypeDependent()) { in CheckTemplateArgument()
4105 Converted = TemplateArgument(Arg); in CheckTemplateArgument()
4106 return Owned(Arg); in CheckTemplateArgument()
4128 !Context.hasSameUnqualifiedType(ParamType, Arg->getType())) { in CheckTemplateArgument()
4138 << Arg->getType().getUnqualifiedType() in CheckTemplateArgument()
4148 if (Arg->isValueDependent()) { in CheckTemplateArgument()
4149 Converted = TemplateArgument(Arg); in CheckTemplateArgument()
4150 return Owned(Arg); in CheckTemplateArgument()
4162 CheckConvertedConstantExpression(Arg, ParamType, Value, in CheckTemplateArgument()
4180 ExprResult ArgResult = DefaultLvalueConversion(Arg); in CheckTemplateArgument()
4183 Arg = ArgResult.take(); in CheckTemplateArgument()
4185 QualType ArgType = Arg->getType(); in CheckTemplateArgument()
4197 Diag(Arg->getLocStart(), in CheckTemplateArgument()
4199 << ArgType << Arg->getSourceRange(); in CheckTemplateArgument()
4202 } else if (!Arg->isValueDependent()) { in CheckTemplateArgument()
4215 Arg = VerifyIntegerConstantExpression(Arg, &Value, Diagnoser, in CheckTemplateArgument()
4217 if (!Arg) in CheckTemplateArgument()
4231 Arg = ImpCastExprToType(Arg, ParamType, CK_IntegralToBoolean).take(); in CheckTemplateArgument()
4232 } else if (IsIntegralPromotion(Arg, ArgType, ParamType) || in CheckTemplateArgument()
4235 Arg = ImpCastExprToType(Arg, ParamType, CK_IntegralCast).take(); in CheckTemplateArgument()
4238 Diag(Arg->getLocStart(), in CheckTemplateArgument()
4240 << Arg->getType() << InstantiatedParamType << Arg->getSourceRange(); in CheckTemplateArgument()
4248 if (Arg->isValueDependent()) { in CheckTemplateArgument()
4251 Converted = TemplateArgument(Arg); in CheckTemplateArgument()
4252 return Owned(Arg); in CheckTemplateArgument()
4279 Diag(Arg->getLocStart(), diag::warn_template_arg_negative) in CheckTemplateArgument()
4281 << Arg->getSourceRange(); in CheckTemplateArgument()
4294 Diag(Arg->getLocStart(), in CheckTemplateArgument()
4297 << Arg->getSourceRange(); in CheckTemplateArgument()
4306 return Owned(Arg); in CheckTemplateArgument()
4309 QualType ArgType = Arg->getType(); in CheckTemplateArgument()
4336 if (Arg->getType() == Context.OverloadTy) { in CheckTemplateArgument()
4337 if (FunctionDecl *Fn = ResolveAddressOfOverloadedFunction(Arg, ParamType, in CheckTemplateArgument()
4340 if (DiagnoseUseOfDecl(Fn, Arg->getLocStart())) in CheckTemplateArgument()
4343 Arg = FixOverloadedFunctionReference(Arg, FoundResult, Fn); in CheckTemplateArgument()
4344 ArgType = Arg->getType(); in CheckTemplateArgument()
4352 Arg, Converted)) in CheckTemplateArgument()
4354 return Owned(Arg); in CheckTemplateArgument()
4357 if (CheckTemplateArgumentPointerToMember(*this, Param, ParamType, Arg, in CheckTemplateArgument()
4360 return Owned(Arg); in CheckTemplateArgument()
4373 Arg, Converted)) in CheckTemplateArgument()
4375 return Owned(Arg); in CheckTemplateArgument()
4388 if (Arg->getType() == Context.OverloadTy) { in CheckTemplateArgument()
4389 if (FunctionDecl *Fn = ResolveAddressOfOverloadedFunction(Arg, in CheckTemplateArgument()
4393 if (DiagnoseUseOfDecl(Fn, Arg->getLocStart())) in CheckTemplateArgument()
4396 Arg = FixOverloadedFunctionReference(Arg, FoundResult, Fn); in CheckTemplateArgument()
4397 ArgType = Arg->getType(); in CheckTemplateArgument()
4404 Arg, Converted)) in CheckTemplateArgument()
4406 return Owned(Arg); in CheckTemplateArgument()
4411 if (Arg->isTypeDependent() || Arg->isValueDependent()) { in CheckTemplateArgument()
4412 Converted = TemplateArgument(Arg); in CheckTemplateArgument()
4413 return Owned(Arg); in CheckTemplateArgument()
4416 switch (isNullPointerValueTemplateArgument(*this, Param, ParamType, Arg)) { in CheckTemplateArgument()
4418 Diag(Arg->getExprLoc(), diag::err_template_arg_not_convertible) in CheckTemplateArgument()
4419 << Arg->getType() << ParamType; in CheckTemplateArgument()
4427 Diag(Arg->getExprLoc(), diag::warn_cxx98_compat_template_arg_null); in CheckTemplateArgument()
4429 return Owned(Arg); in CheckTemplateArgument()
4437 if (CheckTemplateArgumentPointerToMember(*this, Param, ParamType, Arg, in CheckTemplateArgument()
4440 return Owned(Arg); in CheckTemplateArgument()
4449 const TemplateArgumentLoc &Arg, in CheckTemplateArgument() argument
4451 TemplateName Name = Arg.getArgument().getAsTemplate(); in CheckTemplateArgument()
4476 Diag(Arg.getLocation(), diag::err_template_arg_not_class_template); in CheckTemplateArgument()
4489 Arg.getLocation()); in CheckTemplateArgument()
4497 Sema::BuildExpressionFromDeclTemplateArgument(const TemplateArgument &Arg, in BuildExpressionFromDeclTemplateArgument() argument
4500 assert(Arg.getKind() == TemplateArgument::Declaration && in BuildExpressionFromDeclTemplateArgument()
4505 if (!Arg.getAsDecl()) { in BuildExpressionFromDeclTemplateArgument()
4514 ValueDecl *VD = cast<ValueDecl>(Arg.getAsDecl()); in BuildExpressionFromDeclTemplateArgument()
4608 Sema::BuildExpressionFromIntegralTemplateArgument(const TemplateArgument &Arg, in BuildExpressionFromIntegralTemplateArgument() argument
4610 assert(Arg.getKind() == TemplateArgument::Integral && in BuildExpressionFromIntegralTemplateArgument()
4612 QualType T = Arg.getIntegralType(); in BuildExpressionFromIntegralTemplateArgument()
4625 Arg.getAsIntegral().getZExtValue(), in BuildExpressionFromIntegralTemplateArgument()
4631 Arg.getAsIntegral().getBoolValue(), in BuildExpressionFromIntegralTemplateArgument()
4646 Expr *E = IntegerLiteral::Create(Context, Arg.getAsIntegral(), BT, Loc); in BuildExpressionFromIntegralTemplateArgument()