clang 22.0.0git
SemaTemplateInstantiate.cpp File Reference
#include "TreeTransform.h"
#include "clang/AST/ASTConcept.h"
#include "clang/AST/ASTConsumer.h"
#include "clang/AST/ASTContext.h"
#include "clang/AST/ASTLambda.h"
#include "clang/AST/ASTMutationListener.h"
#include "clang/AST/DeclBase.h"
#include "clang/AST/DeclTemplate.h"
#include "clang/AST/DynamicRecursiveASTVisitor.h"
#include "clang/AST/Expr.h"
#include "clang/AST/ExprConcepts.h"
#include "clang/AST/PrettyDeclStackTrace.h"
#include "clang/AST/Type.h"
#include "clang/AST/TypeLoc.h"
#include "clang/AST/TypeVisitor.h"
#include "clang/Basic/LangOptions.h"
#include "clang/Basic/TargetInfo.h"
#include "clang/Sema/DeclSpec.h"
#include "clang/Sema/EnterExpressionEvaluationContext.h"
#include "clang/Sema/Initialization.h"
#include "clang/Sema/Sema.h"
#include "clang/Sema/SemaConcept.h"
#include "clang/Sema/SemaInternal.h"
#include "clang/Sema/Template.h"
#include "clang/Sema/TemplateDeduction.h"
#include "clang/Sema/TemplateInstCallback.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/SaveAndRestore.h"
#include "llvm/Support/TimeProfiler.h"
#include <optional>

Go to the source code of this file.

Namespaces

namespace  TemplateInstArgsHelpers
namespace  clang
 The JSON file list parser is used to communicate input to InstallAPI.
namespace  clang::sema

Functions

static std::string convertCallArgsToString (Sema &S, llvm::ArrayRef< const Expr * > Args)
static TemplateArgument getPackSubstitutedTemplateArgument (Sema &S, TemplateArgument Arg)
static concepts::Requirement::SubstitutionDiagnosticcreateSubstDiag (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)
Attrclang::sema::instantiateTemplateAttribute (const Attr *At, ASTContext &C, Sema &S, const MultiLevelTemplateArgumentList &TemplateArgs)
Attrclang::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 DeclgetCanonicalParmVarDecl (const Decl *D)

Function Documentation

◆ convertCallArgsToString()

std::string convertCallArgsToString ( Sema & S,
llvm::ArrayRef< const Expr * > Args )
static

◆ createSubstDiag()

◆ getCanonicalParmVarDecl()

◆ getPackSubstitutedTemplateArgument()

◆ getPatternForClassTemplateSpecialization()

ActionResult< CXXRecordDecl * > getPatternForClassTemplateSpecialization ( Sema & S,
SourceLocation PointOfInstantiation,
ClassTemplateSpecializationDecl * ClassTemplateSpec,
TemplateSpecializationKind TSK,
bool PrimaryStrictPackMatch )
static

◆ NeedsInstantiationAsFunctionType()

bool NeedsInstantiationAsFunctionType ( TypeSourceInfo * T)
static

◆ PreparePackForExpansion()