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

References

tools/clang/lib/Sema/SemaTemplateDeduction.cpp
 1240     const ReferenceType *ParamRef = Param->getAs<ReferenceType>();
 1242       Param = ParamRef->getPointeeType();
 1249     if (ParamRef && ArgRef && S.Context.hasSameUnqualifiedType(Param, Arg)) {
 1269       Qualifiers ParamQuals = Param.getQualifiers();
 1288     Param = Param.getUnqualifiedType();
 1288     Param = Param.getUnqualifiedType();
 1299       QualType UnqualParam = S.Context.getUnqualifiedArrayType(Param, Quals);
 1302       Param = S.Context.getQualifiedType(UnqualParam, Quals);
 1305     if ((TDF & TDF_TopLevelParameterTypeList) && !Param->isFunctionType()) {
 1318       if (isForwardingReference(Param, 0) && Arg->isLValueReferenceType())
 1319         Param = Param->getPointeeType();
 1319         Param = Param->getPointeeType();
 1331         = Param->getAs<TemplateTypeParmType>()) {
 1355         hasInconsistentOrSupersetQualifiersOf(Param, Arg)) {
 1357       Info.FirstArg = TemplateArgument(Param);
 1364     if (Arg->isFunctionType() && Param.hasQualifiers()) {
 1376     Qualifiers ParamQs = Param.getQualifiers();
 1391       Info.FirstArg = TemplateArgument(Param);
 1433   if (isa<SubstTemplateTypeParmPackType>(Param))
 1437   CanQualType CanParam = S.Context.getCanonicalType(Param);
 1441       if (hasInconsistentOrSupersetQualifiersOf(Param, Arg))
 1447       if (!Arg.getQualifiers().compatiblyIncludes(Param.getQualifiers()))
 1454       Arg = S.Context.getQualifiedType(Arg, Param.getQualifiers());
 1455     } else if (!IsPossiblyOpaquelyQualifiedType(Param)) {
 1456       if (Param.getCVRQualifiers() != Arg.getCVRQualifiers())
 1461     if (!Param->isDependentType()) {
 1466                 : Param != Arg;
 1473   } else if (!Param->isDependentType()) {
 1484   switch (Param->getTypeClass()) {
 1510         Param = Param.getUnqualifiedType();
 1510         Param = Param.getUnqualifiedType();
 1514       return Param == Arg? Sema::TDK_Success : Sema::TDK_NonDeducedMismatch;
 1520                                     cast<ComplexType>(Param)->getElementType(),
 1530                                        cast<AtomicType>(Param)->getValueType(),
 1550                                      cast<PointerType>(Param)->getPointeeType(),
 1563                            cast<LValueReferenceType>(Param)->getPointeeType(),
 1575                              cast<RValueReferenceType>(Param)->getPointeeType(),
 1589                     S.Context.getAsIncompleteArrayType(Param)->getElementType(),
 1602         S.Context.getAsConstantArrayType(Param);
 1623         = S.Context.getAsDependentSizedArrayType(Param);
 1671         cast<FunctionProtoType>(Param);
 1739       Param = cast<InjectedClassNameType>(Param)
 1739       Param = cast<InjectedClassNameType>(Param)
 1741       assert(isa<TemplateSpecializationType>(Param) &&
 1752           cast<TemplateSpecializationType>(Param);
 1861       const MemberPointerType *MemPtrParam = cast<MemberPointerType>(Param);
 1896       const BlockPointerType *BlockPtrParam = cast<BlockPointerType>(Param);
 1912       const ExtVectorType *VectorParam = cast<ExtVectorType>(Param);
 1942       const auto *VectorParam = cast<DependentVectorType>(Param);
 1994         = cast<DependentSizedExtVectorType>(Param);
 2050           cast<DependentAddressSpaceType>(Param);