clang: lib/Sema/SemaTemplateInstantiate.cpp File Reference (original) (raw)

Go to the source code of this file.

Functions
static std::string convertCallArgsToString (Sema &S, llvm::ArrayRef< const Expr * > Args)
static concepts::Requirement::SubstitutionDiagnostic * createSubstDiag (Sema &S, TemplateDeductionInfo &Info, Sema::EntityPrinter Printer)
static bool NeedsInstantiationAsFunctionType (TypeSourceInfo *T)
static bool PreparePackForExpansion (Sema &S, const CXXBaseSpecifier &Base, const MultiLevelTemplateArgumentList &TemplateArgs, TypeSourceInfo *&Out, UnexpandedInfo &Info)
Attr * clang::sema::instantiateTemplateAttribute (const Attr *At, ASTContext &C, Sema &S, const MultiLevelTemplateArgumentList &TemplateArgs)
Attr * clang::sema::instantiateTemplateAttributeForDecl (const Attr *At, ASTContext &C, Sema &S, const MultiLevelTemplateArgumentList &TemplateArgs)
static ActionResult< CXXRecordDecl * > getPatternForClassTemplateSpecialization (Sema &S, SourceLocation PointOfInstantiation, ClassTemplateSpecializationDecl *ClassTemplateSpec, TemplateSpecializationKind TSK, bool PrimaryStrictPackMatch)
Get the instantiation pattern to use to instantiate the definition of a given ClassTemplateSpecializationDecl (either the pattern of the primary template or of a partial specialization).
static const Decl * getCanonicalParmVarDecl (const Decl *D)

convertCallArgsToString()

createSubstDiag()

getCanonicalParmVarDecl()

const Decl * getCanonicalParmVarDecl ( const Decl * D) static

getPatternForClassTemplateSpecialization()

Get the instantiation pattern to use to instantiate the definition of a given ClassTemplateSpecializationDecl (either the pattern of the primary template or of a partial specialization).

Definition at line 3863 of file SemaTemplateInstantiate.cpp.

References clang::TemplateSpecCandidateSet::addCandidate(), clang::Ambiguous, clang::AS_public, clang::TemplateArgumentList::asArray(), clang::Sema::InstantiatingTemplate::Clear(), clang::Sema::Context, clang::Sema::DeduceTemplateArguments(), clang::SemaBase::Diag(), clang::TemplateSpecCandidateSet::getLocation(), clang::Sema::getMoreSpecializedPartialSpecialization(), clang::ClassTemplateSpecializationDecl::getSpecializedTemplate(), clang::ClassTemplateSpecializationDecl::getSpecializedTemplateOrPartial(), clang::ClassTemplateSpecializationDecl::getTemplateArgs(), clang::Sema::getTemplateArgumentBindingsText(), clang::sema::TemplateDeductionInfo::hasStrictPackMatch(), clang::isa(), clang::Sema::InstantiatingTemplate::isInvalid(), clang::DeclAccessPair::make(), clang::MakeDeductionFailureInfo(), clang::TemplateSpecCandidate::set(), clang::ClassTemplateSpecializationDecl::setInstantiationOf(), clang::Success, clang::sema::TemplateDeductionInfo::takeCanonical(), and clang::Template.

Referenced by clang::Sema::InstantiateClassTemplateSpecialization().

NeedsInstantiationAsFunctionType()

PreparePackForExpansion()