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

References

tools/clang/lib/Sema/SemaTemplateDeduction.cpp
 1226   QualType Param = S.Context.getCanonicalType(ParamIn);
 1227   QualType Arg = S.Context.getCanonicalType(ArgIn);
 1249     if (ParamRef && ArgRef && S.Context.hasSameUnqualifiedType(Param, Arg)) {
 1299       QualType UnqualParam = S.Context.getUnqualifiedArrayType(Param, Quals);
 1302       Param = S.Context.getQualifiedType(UnqualParam, Quals);
 1345       Arg = S.Context.getUnqualifiedArrayType(Arg, Quals);
 1347         Arg = S.Context.getQualifiedType(Arg, Quals);
 1370     assert(Arg != S.Context.OverloadTy && "Unresolved overloaded function");
 1399     if (S.getLangOpts().ObjCAutoRefCount &&
 1404     DeducedType = S.Context.getQualifiedType(DeducedType.getUnqualifiedType(),
 1408       DeducedType = S.Context.getCanonicalType(DeducedType);
 1411     DeducedTemplateArgument Result = checkDeducedTemplateArguments(S.Context,
 1437   CanQualType CanParam = S.Context.getCanonicalType(Param);
 1438   CanQualType CanArg = S.Context.getCanonicalType(Arg);
 1453       Arg = S.Context.getUnqualifiedArrayType(Arg, Quals);
 1454       Arg = S.Context.getQualifiedType(Arg, Param.getQualifiers());
 1465                 ? !S.isSameOrCompatibleFunctionType(CanParam, CanArg)
 1478             ? S.isSameOrCompatibleFunctionType(ParamUnqualType, ArgUnqualType)
 1519         return DeduceTemplateArgumentsByTypeMatch(S, TemplateParams,
 1529         return DeduceTemplateArgumentsByTypeMatch(S, TemplateParams,
 1549       return DeduceTemplateArgumentsByTypeMatch(S, TemplateParams,
 1562       return DeduceTemplateArgumentsByTypeMatch(S, TemplateParams,
 1574       return DeduceTemplateArgumentsByTypeMatch(S, TemplateParams,
 1583         S.Context.getAsIncompleteArrayType(Arg);
 1588       return DeduceTemplateArgumentsByTypeMatch(S, TemplateParams,
 1589                     S.Context.getAsIncompleteArrayType(Param)->getElementType(),
 1597         S.Context.getAsConstantArrayType(Arg);
 1602         S.Context.getAsConstantArrayType(Param);
 1607       return DeduceTemplateArgumentsByTypeMatch(S, TemplateParams,
 1615       const ArrayType *ArrayArg = S.Context.getAsArrayType(Arg);
 1623         = S.Context.getAsDependentSizedArrayType(Param);
 1625             = DeduceTemplateArgumentsByTypeMatch(S, TemplateParams,
 1644         return DeduceNonTypeTemplateArgument(S, TemplateParams, NTTP, Size,
 1645                                              S.Context.getSizeType(),
 1652           return DeduceNonTypeTemplateArgument(S, TemplateParams, NTTP,
 1682               S, TemplateParams, FunctionProtoParam->getReturnType(),
 1688               S, TemplateParams, FunctionProtoParam->param_type_begin(),
 1717               S, TemplateParams, NTTP, Noexcept, S.Context.BoolTy,
 1717               S, TemplateParams, NTTP, Noexcept, S.Context.BoolTy,
 1723                 S, TemplateParams, NTTP, ArgNoexceptExpr, Info, Deduced);
 1758         return DeduceTemplateArguments(S, TemplateParams, SpecParam, Arg, Info,
 1765           S, TemplateParams, SpecParam, Arg, Info, Deduced);
 1773       if (!S.isCompleteType(Info.getLocation(), Arg))
 1811               DeduceTemplateArguments(S, TemplateParams, SpecParam,
 1868         S.adjustMemberFunctionCC(ParamPointeeType, /*IsStatic=*/true,
 1872         S.adjustMemberFunctionCC(ArgPointeeType, /*IsStatic=*/true,
 1876             = DeduceTemplateArgumentsByTypeMatch(S, TemplateParams,
 1883       return DeduceTemplateArgumentsByTypeMatch(S, TemplateParams,
 1902       return DeduceTemplateArgumentsByTypeMatch(S, TemplateParams,
 1919         return DeduceTemplateArgumentsByTypeMatch(S, TemplateParams,
 1932         return DeduceTemplateArgumentsByTypeMatch(S, TemplateParams,
 1948                     S, TemplateParams, VectorParam->getElementType(),
 1958         llvm::APSInt ArgSize(S.Context.getTypeSize(S.Context.IntTy), false);
 1958         llvm::APSInt ArgSize(S.Context.getTypeSize(S.Context.IntTy), false);
 1963         return DeduceNonTypeTemplateArgument(S, TemplateParams, NTTP, ArgSize,
 1964                                              S.Context.UnsignedIntTy, true,
 1972                     S, TemplateParams, VectorParam->getElementType(),
 1983             S, TemplateParams, NTTP, VectorArg->getSizeExpr(), Info, Deduced);
 1999               = DeduceTemplateArgumentsByTypeMatch(S, TemplateParams,
 2011         llvm::APSInt ArgSize(S.Context.getTypeSize(S.Context.IntTy), false);
 2011         llvm::APSInt ArgSize(S.Context.getTypeSize(S.Context.IntTy), false);
 2016         return DeduceNonTypeTemplateArgument(S, TemplateParams, NTTP, ArgSize,
 2017                                              S.Context.IntTy, true, Info,
 2025             = DeduceTemplateArgumentsByTypeMatch(S, TemplateParams,
 2037         return DeduceNonTypeTemplateArgument(S, TemplateParams, NTTP,
 2057                     S, TemplateParams, AddressSpaceParam->getPointeeType(),
 2068             S, TemplateParams, NTTP, AddressSpaceArg->getAddrSpaceExpr(), Info,
 2073         llvm::APSInt ArgAddressSpace(S.Context.getTypeSize(S.Context.IntTy),
 2073         llvm::APSInt ArgAddressSpace(S.Context.getTypeSize(S.Context.IntTy),
 2080                     S, TemplateParams, AddressSpaceParam->getPointeeType(),
 2081                     S.Context.removeAddrSpaceQualType(Arg), Info, Deduced, TDF))
 2090         return DeduceNonTypeTemplateArgument(S, TemplateParams, NTTP,
 2091                                              ArgAddressSpace, S.Context.IntTy,