reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

tools/clang/lib/Sema/SemaTemplate.cpp
 6343   if (getLangOpts().CPlusPlus17 && ParamType->isUndeducedType()) {
 6350       auto *AT = dyn_cast<AutoType>(ParamType);
 6365             Context.getTrivialTypeSourceInfo(ParamType, Param->getLocation()),
 6366             DeductionArg, ParamType, Depth) == DAR_Failed) {
 6378     ParamType = CheckNonTypeTemplateParameterType(ParamType, Arg->getExprLoc());
 6378     ParamType = CheckNonTypeTemplateParameterType(ParamType, Arg->getExprLoc());
 6379     if (ParamType.isNull()) {
 6386   assert(!ParamType.hasQualifiers() &&
 6390       !Context.hasSameType(ParamType.getNonLValueExprType(Context),
 6399     if ((ParamType->isDependentType() || Arg->isTypeDependent()) &&
 6410       << ParamType.getUnqualifiedType();
 6419   if (ParamType->isDependentType() || Arg->isTypeDependent() ||
 6426         Arg, ParamType.getNonLValueExprType(Context), CK_Dependent,
 6427         ParamType->isLValueReferenceType() ? VK_LValue :
 6428         ParamType->isRValueReferenceType() ? VK_XValue : VK_RValue);
 6452         Arg, ParamType, Value, CCEK_TemplateArg);
 6463     QualType CanonParamType = Context.getCanonicalType(ParamType);
 6468       assert(ParamType->isNullPtrType());
 6475       assert(ParamType->isIntegralOrEnumerationType());
 6479       assert(ParamType->isMemberPointerType());
 6485             << Value.getMemberPointerDecl() << ParamType
 6498       assert(ParamType->isPointerType() || ParamType->isReferenceType() ||
 6498       assert(ParamType->isPointerType() || ParamType->isReferenceType() ||
 6499              ParamType->isNullPtrType());
 6520           !Value.isLValueOnePastTheEnd() && ParamType->isPointerType()) {
 6527           << Value.getAsString(Context, ParamType);
 6530       assert((VD || !ParamType->isReferenceType()) &&
 6532       assert((!VD || !ParamType->isNullPtrType()) &&
 6560   if (ParamType->isIntegralOrEnumerationType()) {
 6581         CheckConvertedConstantExpression(Arg, ParamType, Value,
 6595       QualType IntegerType = ParamType;
 6601                                    Context.getCanonicalType(ParamType));
 6649     if (Context.hasSameType(ParamType, ArgType)) {
 6651     } else if (ParamType->isBooleanType()) {
 6653       Arg = ImpCastExprToType(Arg, ParamType, CK_IntegralToBoolean).get();
 6654     } else if (IsIntegralPromotion(Arg, ArgType, ParamType) ||
 6655                !ParamType->isEnumeralType()) {
 6657       Arg = ImpCastExprToType(Arg, ParamType, CK_IntegralCast).get();
 6661           << Arg->getType() << ParamType << Arg->getSourceRange();
 6676     QualType IntegerType = Context.getCanonicalType(ParamType);
 6680     if (ParamType->isBooleanType()) {
 6723                                  ParamType->isEnumeralType()
 6724                                    ? Context.getCanonicalType(ParamType)
 6739       (ParamType->isPointerType() &&
 6740        ParamType->castAs<PointerType>()->getPointeeType()->isFunctionType()) ||
 6745       (ParamType->isReferenceType() &&
 6746        ParamType->castAs<ReferenceType>()->getPointeeType()->isFunctionType()) ||
 6752       (ParamType->isMemberPointerType() &&
 6753        ParamType->castAs<MemberPointerType>()->getPointeeType()
 6757       if (FunctionDecl *Fn = ResolveAddressOfOverloadedFunction(Arg, ParamType,
 6769     if (!ParamType->isMemberPointerType()) {
 6771                                                          ParamType,
 6777     if (CheckTemplateArgumentPointerToMember(*this, Param, ParamType, Arg,
 6783   if (ParamType->isPointerType()) {
 6788     assert(ParamType->getPointeeType()->isIncompleteOrObjectType() &&
 6792                                                        ParamType,
 6798   if (const ReferenceType *ParamRefType = ParamType->getAs<ReferenceType>()) {
 6823                                                        ParamType,
 6830   if (ParamType->isNullPtrType()) {
 6836     switch (isNullPointerValueTemplateArgument(*this, Param, ParamType, Arg)) {
 6839         << Arg->getType() << ParamType;
 6848       Converted = TemplateArgument(Context.getCanonicalType(ParamType),
 6856   assert(ParamType->isMemberPointerType() && "Only pointers to members remain");
 6858   if (CheckTemplateArgumentPointerToMember(*this, Param, ParamType, Arg,