clang 20.0.0git
Classes | Public Member Functions | Public Attributes | List of all members
CXXNameMangler::TemplateArgManglingInfo Struct Reference

Classes

struct  Info
 Information about how to mangle a template argument. More...
 

Public Member Functions

 TemplateArgManglingInfo (const CXXNameMangler &Mangler, TemplateName TN)
 
bool isOverloadable ()
 Determine whether the resolved template might be overloaded on its template parameter list.
 
bool needToMangleTemplateParam (const NamedDecl *Param, const TemplateArgument &Arg)
 Determine whether we need to prefix this <template-arg> mangling with a <template-param-decl>.
 
Info getArgInfo (unsigned ParamIdx, const TemplateArgument &Arg)
 Determine information about how this template argument should be mangled.
 
const ExprgetTrailingRequiresClauseToMangle ()
 Determine if we should mangle a requires-clause after the template argument list.
 

Public Attributes

const CXXNameMangler & Mangler
 
TemplateDeclResolvedTemplate = nullptr
 
bool SeenPackExpansionIntoNonPack = false
 
const NamedDeclUnresolvedExpandedPack = nullptr
 

Detailed Description

Definition at line 6002 of file ItaniumMangle.cpp.

Constructor & Destructor Documentation

◆ TemplateArgManglingInfo()

CXXNameMangler::TemplateArgManglingInfo::TemplateArgManglingInfo ( const CXXNameMangler &  Mangler,
TemplateName  TN 
)
inline

Member Function Documentation

◆ getArgInfo()

Info CXXNameMangler::TemplateArgManglingInfo::getArgInfo ( unsigned  ParamIdx,
const TemplateArgument Arg 
)
inline

◆ getTrailingRequiresClauseToMangle()

const Expr * CXXNameMangler::TemplateArgManglingInfo::getTrailingRequiresClauseToMangle ( )
inline

Determine if we should mangle a requires-clause after the template argument list.

If so, returns the expression to mangle.

Definition at line 6161 of file ItaniumMangle.cpp.

References clang::TemplateParameterList::getRequiresClause(), clang::TemplateDecl::getTemplateParameters(), isOverloadable(), and ResolvedTemplate.

◆ isOverloadable()

bool CXXNameMangler::TemplateArgManglingInfo::isOverloadable ( )
inline

Determine whether the resolved template might be overloaded on its template parameter list.

If so, the mangling needs to include enough information to reconstruct the template parameter list.

Definition at line 6026 of file ItaniumMangle.cpp.

References ResolvedTemplate.

Referenced by getArgInfo(), and getTrailingRequiresClauseToMangle().

◆ needToMangleTemplateParam()

bool CXXNameMangler::TemplateArgManglingInfo::needToMangleTemplateParam ( const NamedDecl Param,
const TemplateArgument Arg 
)
inline

Member Data Documentation

◆ Mangler

const CXXNameMangler& CXXNameMangler::TemplateArgManglingInfo::Mangler

Definition at line 6003 of file ItaniumMangle.cpp.

Referenced by needToMangleTemplateParam().

◆ ResolvedTemplate

TemplateDecl* CXXNameMangler::TemplateArgManglingInfo::ResolvedTemplate = nullptr

◆ SeenPackExpansionIntoNonPack

bool CXXNameMangler::TemplateArgManglingInfo::SeenPackExpansionIntoNonPack = false

Definition at line 6005 of file ItaniumMangle.cpp.

Referenced by getArgInfo().

◆ UnresolvedExpandedPack

const NamedDecl* CXXNameMangler::TemplateArgManglingInfo::UnresolvedExpandedPack = nullptr

Definition at line 6006 of file ItaniumMangle.cpp.

Referenced by getArgInfo().


The documentation for this struct was generated from the following file: