clang 22.0.0git
|
A semantic tree transformation that allows one to transform one abstract syntax tree into another. More...
#include "/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/Sema/TreeTransform.h"
Classes | |
class | TemporaryBase |
RAII object that temporarily sets the base location and entity used for reporting diagnostics in types. More... |
Public Types | |
enum class | StmtDiscardKind { Discarded , NotDiscarded , StmtExprResult } |
The reason why the value of a statement is not discarded, if any. More... |
Public Member Functions | |
TreeTransform (Sema &SemaRef) | |
Initializes a new tree transformer. | |
Derived & | getDerived () |
Retrieves a reference to the derived class. | |
const Derived & | getDerived () const |
Retrieves a reference to the derived class. | |
Sema & | getSema () const |
Retrieves a reference to the semantic analysis object used for this tree transform. | |
bool | AlwaysRebuild () |
Whether the transformation should always rebuild AST nodes, even if none of the children have changed. | |
bool | ReplacingOriginal () |
Whether the transformation is forming an expression or statement that replaces the original. | |
bool | AllowSkippingCXXConstructExpr () |
Wether CXXConstructExpr can be skipped when they are implicit. | |
SourceLocation | getBaseLocation () |
Returns the location of the entity being transformed, if that information was not available elsewhere in the AST. | |
DeclarationName | getBaseEntity () |
Returns the name of the entity being transformed, if that information was not available elsewhere in the AST. | |
void | setBase (SourceLocation Loc, DeclarationName Entity) |
Sets the "base" location and entity when that information is known based on another transformation. | |
bool | AlreadyTransformed (QualType T) |
Determine whether the given type T has already been transformed. | |
unsigned | TransformTemplateDepth (unsigned Depth) |
Transform a template parameter depth level. | |
bool | DropCallArgument (Expr *E) |
Determine whether the given call argument should be dropped, e.g., because it is a default argument. | |
bool | TryExpandParameterPacks (SourceLocation EllipsisLoc, SourceRange PatternRange, ArrayRef< UnexpandedParameterPack > Unexpanded, bool FailOnPackProducingTemplates, bool &ShouldExpand, bool &RetainExpansion, UnsignedOrNone &NumExpansions) |
Determine whether we should expand a pack expansion with the given set of parameter packs into separate arguments by repeatedly transforming the pattern. | |
TemplateArgument | ForgetPartiallySubstitutedPack () |
"Forget" about the partially-substituted pack template argument, when performing an instantiation that must preserve the parameter pack use. | |
void | RememberPartiallySubstitutedPack (TemplateArgument Arg) |
"Remember" the partially-substituted pack template argument after performing an instantiation that must preserve the parameter pack use. | |
MultiLevelTemplateArgumentList | ForgetSubstitution () |
"Forget" the template substitution to allow transforming the AST without any template instantiations. | |
void | RememberSubstitution (MultiLevelTemplateArgumentList) |
void | ExpandingFunctionParameterPack (ParmVarDecl *Pack) |
Note to the derived class when a function parameter pack is being expanded. | |
QualType | TransformType (QualType T) |
Transforms the given type into another type. | |
TypeSourceInfo * | TransformType (TypeSourceInfo *DI) |
Transforms the given type-with-location into a new type-with-location. | |
QualType | TransformType (TypeLocBuilder &TLB, TypeLoc TL) |
Transform the given type-with-location into a new type, collecting location information in the given builder as necessary. | |
StmtResult | TransformStmt (Stmt *S, StmtDiscardKind SDK=StmtDiscardKind::Discarded) |
Transform the given statement. | |
OMPClause * | TransformOMPClause (OMPClause *S) |
Transform the given statement. | |
const Attr * | TransformAttr (const Attr *S) |
Transform the given attribute. | |
const Attr * | TransformStmtAttr (const Stmt *OrigS, const Stmt *InstS, const Attr *A) |
ExprResult | TransformExpr (Expr *E) |
Transform the given expression. | |
ExprResult | TransformInitializer (Expr *Init, bool NotCopyInit) |
Transform the given initializer. | |
bool | TransformExprs (Expr *const *Inputs, unsigned NumInputs, bool IsCall, SmallVectorImpl< Expr * > &Outputs, bool *ArgChanged=nullptr) |
Transform the given list of expressions. | |
Decl * | TransformDecl (SourceLocation Loc, Decl *D) |
Transform the given declaration, which is referenced from a type or expression. | |
Sema::ConditionResult | TransformCondition (SourceLocation Loc, VarDecl *Var, Expr *Expr, Sema::ConditionKind Kind) |
Transform the specified condition. | |
void | transformAttrs (Decl *Old, Decl *New) |
Transform the attributes associated with the given declaration and place them on the new declaration. | |
void | transformedLocalDecl (Decl *Old, ArrayRef< Decl * > New) |
Note that a local declaration has been transformed by this transformer. | |
Decl * | TransformDefinition (SourceLocation Loc, Decl *D) |
Transform the definition of the given declaration. | |
NamedDecl * | TransformFirstQualifierInScope (NamedDecl *D, SourceLocation Loc) |
Transform the given declaration, which was the first part of a nested-name-specifier in a member access expression. | |
bool | TransformOverloadExprDecls (OverloadExpr *Old, bool RequiresADL, LookupResult &R) |
Transform the set of declarations in an OverloadExpr. | |
NestedNameSpecifierLoc | TransformNestedNameSpecifierLoc (NestedNameSpecifierLoc NNS, QualType ObjectType=QualType(), NamedDecl *FirstQualifierInScope=nullptr) |
Transform the given nested-name-specifier with source-location information. | |
DeclarationNameInfo | TransformDeclarationNameInfo (const DeclarationNameInfo &NameInfo) |
Transform the given declaration name. | |
bool | TransformRequiresExprRequirements (ArrayRef< concepts::Requirement * > Reqs, llvm::SmallVectorImpl< concepts::Requirement * > &Transformed) |
concepts::TypeRequirement * | TransformTypeRequirement (concepts::TypeRequirement *Req) |
concepts::ExprRequirement * | TransformExprRequirement (concepts::ExprRequirement *Req) |
concepts::NestedRequirement * | TransformNestedRequirement (concepts::NestedRequirement *Req) |
TemplateName | TransformTemplateName (NestedNameSpecifierLoc &QualifierLoc, SourceLocation TemplateKWLoc, TemplateName Name, SourceLocation NameLoc, QualType ObjectType=QualType(), NamedDecl *FirstQualifierInScope=nullptr, bool AllowInjectedClassName=false) |
Transform the given template name. | |
bool | TransformTemplateArgument (const TemplateArgumentLoc &Input, TemplateArgumentLoc &Output, bool Uneval=false) |
Transform the given template argument. | |
TemplateArgument | TransformNamedTemplateTemplateArgument (NestedNameSpecifierLoc &QualifierLoc, SourceLocation TemplateKeywordLoc, TemplateName Name, SourceLocation NameLoc) |
bool | TransformTemplateArguments (const TemplateArgumentLoc *Inputs, unsigned NumInputs, TemplateArgumentListInfo &Outputs, bool Uneval=false) |
Transform the given set of template arguments. | |
template<typename InputIterator> | |
bool | TransformTemplateArguments (InputIterator First, InputIterator Last, TemplateArgumentListInfo &Outputs, bool Uneval=false) |
Transform the given set of template arguments. | |
bool | PreparePackForExpansion (TemplateArgumentLoc In, bool Uneval, TemplateArgumentLoc &Out, UnexpandedInfo &Info) |
Checks if the argument pack from In will need to be expanded and does the necessary prework. | |
void | InventTemplateArgumentLoc (const TemplateArgument &Arg, TemplateArgumentLoc &ArgLoc) |
Fakes up a TemplateArgumentLoc for a given TemplateArgument. | |
TypeSourceInfo * | InventTypeSourceInfo (QualType T) |
Fakes up a TypeSourceInfo for a type. | |
QualType | TransformTemplateTypeParmType (TypeLocBuilder &TLB, TemplateTypeParmTypeLoc TL, bool SuppressObjCLifetime) |
QualType | TransformSubstTemplateTypeParmPackType (TypeLocBuilder &TLB, SubstTemplateTypeParmPackTypeLoc TL, bool SuppressObjCLifetime) |
template<typename Fn> | |
QualType | TransformFunctionProtoType (TypeLocBuilder &TLB, FunctionProtoTypeLoc TL, CXXRecordDecl *ThisContext, Qualifiers ThisTypeQuals, Fn TransformExceptionSpec) |
bool | TransformExceptionSpec (SourceLocation Loc, FunctionProtoType::ExceptionSpecInfo &ESI, SmallVectorImpl< QualType > &Exceptions, bool &Changed) |
StmtResult | TransformSEHHandler (Stmt *Handler) |
QualType | TransformTemplateSpecializationType (TypeLocBuilder &TLB, TemplateSpecializationTypeLoc TL, QualType ObjectType, NamedDecl *FirstQualifierInScope, bool AllowInjectedClassName) |
QualType | TransformTagType (TypeLocBuilder &TLB, TagTypeLoc TL) |
bool | TransformFunctionTypeParams (SourceLocation Loc, ArrayRef< ParmVarDecl * > Params, const QualType *ParamTypes, const FunctionProtoType::ExtParameterInfo *ParamInfos, SmallVectorImpl< QualType > &PTypes, SmallVectorImpl< ParmVarDecl * > *PVars, Sema::ExtParameterInfoBuilder &PInfos, unsigned *LastParamTransformed) |
Transforms the parameters of a function type into the given vectors. | |
bool | TransformFunctionTypeParams (SourceLocation Loc, ArrayRef< ParmVarDecl * > Params, const QualType *ParamTypes, const FunctionProtoType::ExtParameterInfo *ParamInfos, SmallVectorImpl< QualType > &PTypes, SmallVectorImpl< ParmVarDecl * > *PVars, Sema::ExtParameterInfoBuilder &PInfos) |
ExprResult | TransformRequiresTypeParams (SourceLocation KWLoc, SourceLocation RBraceLoc, const RequiresExpr *RE, RequiresExprBodyDecl *Body, ArrayRef< ParmVarDecl * > Params, SmallVectorImpl< QualType > &PTypes, SmallVectorImpl< ParmVarDecl * > &TransParams, Sema::ExtParameterInfoBuilder &PInfos) |
Transforms the parameters of a requires expresison into the given vectors. | |
ParmVarDecl * | TransformFunctionTypeParam (ParmVarDecl *OldParm, int indexAdjustment, UnsignedOrNone NumExpansions, bool ExpectParameterPack) |
Transforms a single function-type parameter. | |
StmtResult | TransformLambdaBody (LambdaExpr *E, Stmt *Body) |
Transform the body of a lambda-expression. | |
StmtResult | SkipLambdaBody (LambdaExpr *E, Stmt *Body) |
Alternative implementation of TransformLambdaBody that skips transforming the body. | |
CXXRecordDecl::LambdaDependencyKind | ComputeLambdaDependency (LambdaScopeInfo *LSI) |
QualType | TransformReferenceType (TypeLocBuilder &TLB, ReferenceTypeLoc TL) |
Transforms a reference type. | |
StmtResult | TransformCompoundStmt (CompoundStmt *S, bool IsStmtExpr) |
ExprResult | TransformCXXNamedCastExpr (CXXNamedCastExpr *E) |
TemplateParameterList * | TransformTemplateParameterList (TemplateParameterList *TPL) |
ExprResult | TransformAddressOfOperand (Expr *E) |
The operand of a unary address-of operator has special rules: it's allowed to refer to a non-static member of a class even if there's no 'this' object available. | |
ExprResult | TransformDependentScopeDeclRefExpr (DependentScopeDeclRefExpr *E, bool IsAddressOfOperand, TypeSourceInfo **RecoveryTSI) |
ExprResult | TransformParenDependentScopeDeclRefExpr (ParenExpr *PE, DependentScopeDeclRefExpr *DRE, bool IsAddressOfOperand, TypeSourceInfo **RecoveryTSI) |
ExprResult | TransformUnresolvedLookupExpr (UnresolvedLookupExpr *E, bool IsAddressOfOperand) |
StmtResult | TransformOMPExecutableDirective (OMPExecutableDirective *S) |
StmtResult | TransformOMPInformationalDirective (OMPExecutableDirective *S) |
This is mostly the same as above, but allows 'informational' class directives when rebuilding the stmt. | |
QualType | RebuildQualifiedType (QualType T, QualifiedTypeLoc TL) |
Build a new qualified type given its unqualified type and type location. | |
QualType | RebuildPointerType (QualType PointeeType, SourceLocation Sigil) |
Build a new pointer type given its pointee type. | |
QualType | RebuildBlockPointerType (QualType PointeeType, SourceLocation Sigil) |
Build a new block pointer type given its pointee type. | |
QualType | RebuildReferenceType (QualType ReferentType, bool LValue, SourceLocation Sigil) |
Build a new reference type given the type it references. | |
QualType | RebuildMemberPointerType (QualType PointeeType, const CXXScopeSpec &SS, CXXRecordDecl *Cls, SourceLocation Sigil) |
Build a new member pointer type given the pointee type and the qualifier it refers into. | |
QualType | RebuildObjCTypeParamType (const ObjCTypeParamDecl *Decl, SourceLocation ProtocolLAngleLoc, ArrayRef< ObjCProtocolDecl * > Protocols, ArrayRef< SourceLocation > ProtocolLocs, SourceLocation ProtocolRAngleLoc) |
QualType | RebuildObjCObjectType (QualType BaseType, SourceLocation Loc, SourceLocation TypeArgsLAngleLoc, ArrayRef< TypeSourceInfo * > TypeArgs, SourceLocation TypeArgsRAngleLoc, SourceLocation ProtocolLAngleLoc, ArrayRef< ObjCProtocolDecl * > Protocols, ArrayRef< SourceLocation > ProtocolLocs, SourceLocation ProtocolRAngleLoc) |
Build an Objective-C object type. | |
QualType | RebuildObjCObjectPointerType (QualType PointeeType, SourceLocation Star) |
Build a new Objective-C object pointer type given the pointee type. | |
QualType | RebuildArrayType (QualType ElementType, ArraySizeModifier SizeMod, const llvm::APInt *Size, Expr *SizeExpr, unsigned IndexTypeQuals, SourceRange BracketsRange) |
Build a new array type given the element type, size modifier, size of the array (if known), size expression, and index type qualifiers. | |
QualType | RebuildConstantArrayType (QualType ElementType, ArraySizeModifier SizeMod, const llvm::APInt &Size, Expr *SizeExpr, unsigned IndexTypeQuals, SourceRange BracketsRange) |
Build a new constant array type given the element type, size modifier, (known) size of the array, and index type qualifiers. | |
QualType | RebuildIncompleteArrayType (QualType ElementType, ArraySizeModifier SizeMod, unsigned IndexTypeQuals, SourceRange BracketsRange) |
Build a new incomplete array type given the element type, size modifier, and index type qualifiers. | |
QualType | RebuildVariableArrayType (QualType ElementType, ArraySizeModifier SizeMod, Expr *SizeExpr, unsigned IndexTypeQuals, SourceRange BracketsRange) |
Build a new variable-length array type given the element type, size modifier, size expression, and index type qualifiers. | |
QualType | RebuildDependentSizedArrayType (QualType ElementType, ArraySizeModifier SizeMod, Expr *SizeExpr, unsigned IndexTypeQuals, SourceRange BracketsRange) |
Build a new dependent-sized array type given the element type, size modifier, size expression, and index type qualifiers. | |
QualType | RebuildVectorType (QualType ElementType, unsigned NumElements, VectorKind VecKind) |
Build a new vector type given the element type and number of elements. | |
QualType | RebuildDependentVectorType (QualType ElementType, Expr *SizeExpr, SourceLocation AttributeLoc, VectorKind) |
Build a new potentially dependently-sized extended vector type given the element type and number of elements. | |
QualType | RebuildExtVectorType (QualType ElementType, unsigned NumElements, SourceLocation AttributeLoc) |
Build a new extended vector type given the element type and number of elements. | |
QualType | RebuildDependentSizedExtVectorType (QualType ElementType, Expr *SizeExpr, SourceLocation AttributeLoc) |
Build a new potentially dependently-sized extended vector type given the element type and number of elements. | |
QualType | RebuildConstantMatrixType (QualType ElementType, unsigned NumRows, unsigned NumColumns) |
Build a new matrix type given the element type and dimensions. | |
QualType | RebuildDependentSizedMatrixType (QualType ElementType, Expr *RowExpr, Expr *ColumnExpr, SourceLocation AttributeLoc) |
Build a new matrix type given the type and dependently-defined dimensions. | |
QualType | RebuildDependentAddressSpaceType (QualType PointeeType, Expr *AddrSpaceExpr, SourceLocation AttributeLoc) |
Build a new DependentAddressSpaceType or return the pointee type variable with the correct address space (retrieved from AddrSpaceExpr) applied to it. | |
QualType | RebuildFunctionProtoType (QualType T, MutableArrayRef< QualType > ParamTypes, const FunctionProtoType::ExtProtoInfo &EPI) |
Build a new function type. | |
QualType | RebuildFunctionNoProtoType (QualType ResultType) |
Build a new unprototyped function type. | |
QualType | RebuildUnresolvedUsingType (ElaboratedTypeKeyword Keyword, NestedNameSpecifier Qualifier, SourceLocation NameLoc, Decl *D) |
Rebuild an unresolved typename type, given the decl that the UnresolvedUsingTypenameDecl was transformed to. | |
QualType | RebuildUsingType (ElaboratedTypeKeyword Keyword, NestedNameSpecifier Qualifier, UsingShadowDecl *D, QualType UnderlyingType) |
Build a new type found via an alias. | |
QualType | RebuildTypedefType (ElaboratedTypeKeyword Keyword, NestedNameSpecifier Qualifier, TypedefNameDecl *Typedef) |
Build a new typedef type. | |
QualType | RebuildMacroQualifiedType (QualType T, const IdentifierInfo *MacroII) |
Build a new MacroDefined type. | |
QualType | RebuildTagType (ElaboratedTypeKeyword Keyword, NestedNameSpecifier Qualifier, TagDecl *Tag) |
Build a new class/struct/union/enum type. | |
QualType | RebuildCanonicalTagType (TagDecl *Tag) |
QualType | RebuildTypeOfExprType (Expr *Underlying, SourceLocation Loc, TypeOfKind Kind) |
Build a new typeof(expr) type. | |
QualType | RebuildTypeOfType (QualType Underlying, TypeOfKind Kind) |
Build a new typeof(type) type. | |
QualType | RebuildUnaryTransformType (QualType BaseType, UnaryTransformType::UTTKind UKind, SourceLocation Loc) |
Build a new unary transform type. | |
QualType | RebuildDecltypeType (Expr *Underlying, SourceLocation Loc) |
Build a new C++11 decltype type. | |
QualType | RebuildPackIndexingType (QualType Pattern, Expr *IndexExpr, SourceLocation Loc, SourceLocation EllipsisLoc, bool FullySubstituted, ArrayRef< QualType > Expansions={}) |
QualType | RebuildAutoType (QualType Deduced, AutoTypeKeyword Keyword, ConceptDecl *TypeConstraintConcept, ArrayRef< TemplateArgument > TypeConstraintArgs) |
Build a new C++11 auto type. | |
QualType | RebuildDeducedTemplateSpecializationType (ElaboratedTypeKeyword Keyword, TemplateName Template, QualType Deduced) |
By default, builds a new DeducedTemplateSpecializationType with the given deduced type. | |
QualType | RebuildTemplateSpecializationType (ElaboratedTypeKeyword Keyword, TemplateName Template, SourceLocation TemplateLoc, TemplateArgumentListInfo &Args) |
Build a new template specialization type. | |
QualType | RebuildParenType (QualType InnerType) |
Build a new parenthesized type. | |
QualType | RebuildDependentNameType (ElaboratedTypeKeyword Keyword, SourceLocation KeywordLoc, NestedNameSpecifierLoc QualifierLoc, const IdentifierInfo *Id, SourceLocation IdLoc, bool DeducedTSTContext) |
Build a new typename type that refers to an identifier. | |
QualType | RebuildPackExpansionType (QualType Pattern, SourceRange PatternRange, SourceLocation EllipsisLoc, UnsignedOrNone NumExpansions) |
Build a new pack expansion type. | |
QualType | RebuildAtomicType (QualType ValueType, SourceLocation KWLoc) |
Build a new atomic type given its value type. | |
QualType | RebuildPipeType (QualType ValueType, SourceLocation KWLoc, bool isReadPipe) |
Build a new pipe type given its value type. | |
QualType | RebuildBitIntType (bool IsUnsigned, unsigned NumBits, SourceLocation Loc) |
Build a bit-precise int given its value type. | |
QualType | RebuildDependentBitIntType (bool IsUnsigned, Expr *NumBitsExpr, SourceLocation Loc) |
Build a dependent bit-precise int given its value type. | |
TemplateName | RebuildTemplateName (CXXScopeSpec &SS, bool TemplateKW, TemplateName Name) |
Build a new template name given a nested name specifier, a flag indicating whether the "template" keyword was provided, and the template that the template name refers to. | |
TemplateName | RebuildTemplateName (CXXScopeSpec &SS, SourceLocation TemplateKWLoc, const IdentifierInfo &Name, SourceLocation NameLoc, QualType ObjectType, bool AllowInjectedClassName) |
Build a new template name given a nested name specifier and the name that is referred to as a template. | |
TemplateName | RebuildTemplateName (CXXScopeSpec &SS, SourceLocation TemplateKWLoc, OverloadedOperatorKind Operator, SourceLocation NameLoc, QualType ObjectType, bool AllowInjectedClassName) |
Build a new template name given a nested name specifier and the overloaded operator name that is referred to as a template. | |
TemplateName | RebuildTemplateName (CXXScopeSpec &SS, SourceLocation TemplateKWLoc, IdentifierOrOverloadedOperator IO, SourceLocation NameLoc, QualType ObjectType, bool AllowInjectedClassName) |
TemplateName | RebuildTemplateName (const TemplateArgument &ArgPack, Decl *AssociatedDecl, unsigned Index, bool Final) |
Build a new template name given a template template parameter pack and the. | |
StmtResult | RebuildCompoundStmt (SourceLocation LBraceLoc, MultiStmtArg Statements, SourceLocation RBraceLoc, bool IsStmtExpr) |
Build a new compound statement. | |
StmtResult | RebuildCaseStmt (SourceLocation CaseLoc, Expr *LHS, SourceLocation EllipsisLoc, Expr *RHS, SourceLocation ColonLoc) |
Build a new case statement. | |
StmtResult | RebuildCaseStmtBody (Stmt *S, Stmt *Body) |
Attach the body to a new case statement. | |
StmtResult | RebuildDefaultStmt (SourceLocation DefaultLoc, SourceLocation ColonLoc, Stmt *SubStmt) |
Build a new default statement. | |
StmtResult | RebuildLabelStmt (SourceLocation IdentLoc, LabelDecl *L, SourceLocation ColonLoc, Stmt *SubStmt) |
Build a new label statement. | |
StmtResult | RebuildAttributedStmt (SourceLocation AttrLoc, ArrayRef< const Attr * > Attrs, Stmt *SubStmt) |
Build a new attributed statement. | |
StmtResult | RebuildIfStmt (SourceLocation IfLoc, IfStatementKind Kind, SourceLocation LParenLoc, Sema::ConditionResult Cond, SourceLocation RParenLoc, Stmt *Init, Stmt *Then, SourceLocation ElseLoc, Stmt *Else) |
Build a new "if" statement. | |
StmtResult | RebuildSwitchStmtStart (SourceLocation SwitchLoc, SourceLocation LParenLoc, Stmt *Init, Sema::ConditionResult Cond, SourceLocation RParenLoc) |
Start building a new switch statement. | |
StmtResult | RebuildSwitchStmtBody (SourceLocation SwitchLoc, Stmt *Switch, Stmt *Body) |
Attach the body to the switch statement. | |
StmtResult | RebuildWhileStmt (SourceLocation WhileLoc, SourceLocation LParenLoc, Sema::ConditionResult Cond, SourceLocation RParenLoc, Stmt *Body) |
Build a new while statement. | |
StmtResult | RebuildDoStmt (SourceLocation DoLoc, Stmt *Body, SourceLocation WhileLoc, SourceLocation LParenLoc, Expr *Cond, SourceLocation RParenLoc) |
Build a new do-while statement. | |
StmtResult | RebuildForStmt (SourceLocation ForLoc, SourceLocation LParenLoc, Stmt *Init, Sema::ConditionResult Cond, Sema::FullExprArg Inc, SourceLocation RParenLoc, Stmt *Body) |
Build a new for statement. | |
StmtResult | RebuildGotoStmt (SourceLocation GotoLoc, SourceLocation LabelLoc, LabelDecl *Label) |
Build a new goto statement. | |
StmtResult | RebuildIndirectGotoStmt (SourceLocation GotoLoc, SourceLocation StarLoc, Expr *Target) |
Build a new indirect goto statement. | |
StmtResult | RebuildReturnStmt (SourceLocation ReturnLoc, Expr *Result) |
Build a new return statement. | |
StmtResult | RebuildDeclStmt (MutableArrayRef< Decl * > Decls, SourceLocation StartLoc, SourceLocation EndLoc) |
Build a new declaration statement. | |
StmtResult | RebuildGCCAsmStmt (SourceLocation AsmLoc, bool IsSimple, bool IsVolatile, unsigned NumOutputs, unsigned NumInputs, IdentifierInfo **Names, MultiExprArg Constraints, MultiExprArg Exprs, Expr *AsmString, MultiExprArg Clobbers, unsigned NumLabels, SourceLocation RParenLoc) |
Build a new inline asm statement. | |
StmtResult | RebuildMSAsmStmt (SourceLocation AsmLoc, SourceLocation LBraceLoc, ArrayRef< Token > AsmToks, StringRef AsmString, unsigned NumOutputs, unsigned NumInputs, ArrayRef< StringRef > Constraints, ArrayRef< StringRef > Clobbers, ArrayRef< Expr * > Exprs, SourceLocation EndLoc) |
Build a new MS style inline asm statement. | |
StmtResult | RebuildCoreturnStmt (SourceLocation CoreturnLoc, Expr *Result, bool IsImplicit) |
Build a new co_return statement. | |
ExprResult | RebuildCoawaitExpr (SourceLocation CoawaitLoc, Expr *Operand, UnresolvedLookupExpr *OpCoawaitLookup, bool IsImplicit) |
Build a new co_await expression. | |
ExprResult | RebuildDependentCoawaitExpr (SourceLocation CoawaitLoc, Expr *Result, UnresolvedLookupExpr *Lookup) |
Build a new co_await expression. | |
ExprResult | RebuildCoyieldExpr (SourceLocation CoyieldLoc, Expr *Result) |
Build a new co_yield expression. | |
StmtResult | RebuildCoroutineBodyStmt (CoroutineBodyStmt::CtorArgs Args) |
StmtResult | RebuildObjCAtTryStmt (SourceLocation AtLoc, Stmt *TryBody, MultiStmtArg CatchStmts, Stmt *Finally) |
Build a new Objective-C @try statement. | |
VarDecl * | RebuildObjCExceptionDecl (VarDecl *ExceptionDecl, TypeSourceInfo *TInfo, QualType T) |
Rebuild an Objective-C exception declaration. | |
StmtResult | RebuildObjCAtCatchStmt (SourceLocation AtLoc, SourceLocation RParenLoc, VarDecl *Var, Stmt *Body) |
Build a new Objective-C @catch statement. | |
StmtResult | RebuildObjCAtFinallyStmt (SourceLocation AtLoc, Stmt *Body) |
Build a new Objective-C @finally statement. | |
StmtResult | RebuildObjCAtThrowStmt (SourceLocation AtLoc, Expr *Operand) |
Build a new Objective-C @throw statement. | |
StmtResult | RebuildOMPCanonicalLoop (Stmt *LoopStmt) |
Build a new OpenMP Canonical loop. | |
StmtResult | RebuildOMPExecutableDirective (OpenMPDirectiveKind Kind, DeclarationNameInfo DirName, OpenMPDirectiveKind CancelRegion, ArrayRef< OMPClause * > Clauses, Stmt *AStmt, SourceLocation StartLoc, SourceLocation EndLoc) |
Build a new OpenMP executable directive. | |
StmtResult | RebuildOMPInformationalDirective (OpenMPDirectiveKind Kind, DeclarationNameInfo DirName, ArrayRef< OMPClause * > Clauses, Stmt *AStmt, SourceLocation StartLoc, SourceLocation EndLoc) |
Build a new OpenMP informational directive. | |
OMPClause * | RebuildOMPIfClause (OpenMPDirectiveKind NameModifier, Expr *Condition, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation NameModifierLoc, SourceLocation ColonLoc, SourceLocation EndLoc) |
Build a new OpenMP 'if' clause. | |
OMPClause * | RebuildOMPFinalClause (Expr *Condition, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc) |
Build a new OpenMP 'final' clause. | |
OMPClause * | RebuildOMPNumThreadsClause (OpenMPNumThreadsClauseModifier Modifier, Expr *NumThreads, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation ModifierLoc, SourceLocation EndLoc) |
Build a new OpenMP 'num_threads' clause. | |
OMPClause * | RebuildOMPSafelenClause (Expr *Len, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc) |
Build a new OpenMP 'safelen' clause. | |
OMPClause * | RebuildOMPSimdlenClause (Expr *Len, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc) |
Build a new OpenMP 'simdlen' clause. | |
OMPClause * | RebuildOMPSizesClause (ArrayRef< Expr * > Sizes, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc) |
OMPClause * | RebuildOMPPermutationClause (ArrayRef< Expr * > PermExprs, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc) |
Build a new OpenMP 'permutation' clause. | |
OMPClause * | RebuildOMPFullClause (SourceLocation StartLoc, SourceLocation EndLoc) |
Build a new OpenMP 'full' clause. | |
OMPClause * | RebuildOMPPartialClause (Expr *Factor, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc) |
Build a new OpenMP 'partial' clause. | |
OMPClause * | RebuildOMPLoopRangeClause (Expr *First, Expr *Count, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation FirstLoc, SourceLocation CountLoc, SourceLocation EndLoc) |
OMPClause * | RebuildOMPAllocatorClause (Expr *A, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc) |
Build a new OpenMP 'allocator' clause. | |
OMPClause * | RebuildOMPCollapseClause (Expr *Num, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc) |
Build a new OpenMP 'collapse' clause. | |
OMPClause * | RebuildOMPDefaultClause (DefaultKind Kind, SourceLocation KindKwLoc, OpenMPDefaultClauseVariableCategory VCKind, SourceLocation VCLoc, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc) |
Build a new OpenMP 'default' clause. | |
OMPClause * | RebuildOMPProcBindClause (ProcBindKind Kind, SourceLocation KindKwLoc, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc) |
Build a new OpenMP 'proc_bind' clause. | |
OMPClause * | RebuildOMPScheduleClause (OpenMPScheduleClauseModifier M1, OpenMPScheduleClauseModifier M2, OpenMPScheduleClauseKind Kind, Expr *ChunkSize, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation M1Loc, SourceLocation M2Loc, SourceLocation KindLoc, SourceLocation CommaLoc, SourceLocation EndLoc) |
Build a new OpenMP 'schedule' clause. | |
OMPClause * | RebuildOMPOrderedClause (SourceLocation StartLoc, SourceLocation EndLoc, SourceLocation LParenLoc, Expr *Num) |
Build a new OpenMP 'ordered' clause. | |
OMPClause * | RebuildOMPPrivateClause (ArrayRef< Expr * > VarList, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc) |
Build a new OpenMP 'private' clause. | |
OMPClause * | RebuildOMPFirstprivateClause (ArrayRef< Expr * > VarList, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc) |
Build a new OpenMP 'firstprivate' clause. | |
OMPClause * | RebuildOMPLastprivateClause (ArrayRef< Expr * > VarList, OpenMPLastprivateModifier LPKind, SourceLocation LPKindLoc, SourceLocation ColonLoc, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc) |
Build a new OpenMP 'lastprivate' clause. | |
OMPClause * | RebuildOMPSharedClause (ArrayRef< Expr * > VarList, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc) |
Build a new OpenMP 'shared' clause. | |
OMPClause * | RebuildOMPReductionClause (ArrayRef< Expr * > VarList, OpenMPReductionClauseModifier Modifier, OpenMPOriginalSharingModifier OriginalSharingModifier, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation ModifierLoc, SourceLocation ColonLoc, SourceLocation EndLoc, CXXScopeSpec &ReductionIdScopeSpec, const DeclarationNameInfo &ReductionId, ArrayRef< Expr * > UnresolvedReductions) |
Build a new OpenMP 'reduction' clause. | |
OMPClause * | RebuildOMPTaskReductionClause (ArrayRef< Expr * > VarList, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation ColonLoc, SourceLocation EndLoc, CXXScopeSpec &ReductionIdScopeSpec, const DeclarationNameInfo &ReductionId, ArrayRef< Expr * > UnresolvedReductions) |
Build a new OpenMP 'task_reduction' clause. | |
OMPClause * | RebuildOMPInReductionClause (ArrayRef< Expr * > VarList, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation ColonLoc, SourceLocation EndLoc, CXXScopeSpec &ReductionIdScopeSpec, const DeclarationNameInfo &ReductionId, ArrayRef< Expr * > UnresolvedReductions) |
Build a new OpenMP 'in_reduction' clause. | |
OMPClause * | RebuildOMPLinearClause (ArrayRef< Expr * > VarList, Expr *Step, SourceLocation StartLoc, SourceLocation LParenLoc, OpenMPLinearClauseKind Modifier, SourceLocation ModifierLoc, SourceLocation ColonLoc, SourceLocation StepModifierLoc, SourceLocation EndLoc) |
Build a new OpenMP 'linear' clause. | |
OMPClause * | RebuildOMPAlignedClause (ArrayRef< Expr * > VarList, Expr *Alignment, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation ColonLoc, SourceLocation EndLoc) |
Build a new OpenMP 'aligned' clause. | |
OMPClause * | RebuildOMPCopyinClause (ArrayRef< Expr * > VarList, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc) |
Build a new OpenMP 'copyin' clause. | |
OMPClause * | RebuildOMPCopyprivateClause (ArrayRef< Expr * > VarList, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc) |
Build a new OpenMP 'copyprivate' clause. | |
OMPClause * | RebuildOMPFlushClause (ArrayRef< Expr * > VarList, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc) |
Build a new OpenMP 'flush' pseudo clause. | |
OMPClause * | RebuildOMPDepobjClause (Expr *Depobj, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc) |
Build a new OpenMP 'depobj' pseudo clause. | |
OMPClause * | RebuildOMPDependClause (OMPDependClause::DependDataTy Data, Expr *DepModifier, ArrayRef< Expr * > VarList, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc) |
Build a new OpenMP 'depend' pseudo clause. | |
OMPClause * | RebuildOMPDeviceClause (OpenMPDeviceClauseModifier Modifier, Expr *Device, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation ModifierLoc, SourceLocation EndLoc) |
Build a new OpenMP 'device' clause. | |
OMPClause * | RebuildOMPMapClause (Expr *IteratorModifier, ArrayRef< OpenMPMapModifierKind > MapTypeModifiers, ArrayRef< SourceLocation > MapTypeModifiersLoc, CXXScopeSpec MapperIdScopeSpec, DeclarationNameInfo MapperId, OpenMPMapClauseKind MapType, bool IsMapTypeImplicit, SourceLocation MapLoc, SourceLocation ColonLoc, ArrayRef< Expr * > VarList, const OMPVarListLocTy &Locs, ArrayRef< Expr * > UnresolvedMappers) |
Build a new OpenMP 'map' clause. | |
OMPClause * | RebuildOMPAllocateClause (Expr *Allocate, Expr *Alignment, OpenMPAllocateClauseModifier FirstModifier, SourceLocation FirstModifierLoc, OpenMPAllocateClauseModifier SecondModifier, SourceLocation SecondModifierLoc, ArrayRef< Expr * > VarList, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation ColonLoc, SourceLocation EndLoc) |
Build a new OpenMP 'allocate' clause. | |
OMPClause * | RebuildOMPNumTeamsClause (ArrayRef< Expr * > VarList, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc) |
Build a new OpenMP 'num_teams' clause. | |
OMPClause * | RebuildOMPThreadLimitClause (ArrayRef< Expr * > VarList, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc) |
Build a new OpenMP 'thread_limit' clause. | |
OMPClause * | RebuildOMPPriorityClause (Expr *Priority, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc) |
Build a new OpenMP 'priority' clause. | |
OMPClause * | RebuildOMPGrainsizeClause (OpenMPGrainsizeClauseModifier Modifier, Expr *Device, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation ModifierLoc, SourceLocation EndLoc) |
Build a new OpenMP 'grainsize' clause. | |
OMPClause * | RebuildOMPNumTasksClause (OpenMPNumTasksClauseModifier Modifier, Expr *NumTasks, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation ModifierLoc, SourceLocation EndLoc) |
Build a new OpenMP 'num_tasks' clause. | |
OMPClause * | RebuildOMPHintClause (Expr *Hint, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc) |
Build a new OpenMP 'hint' clause. | |
OMPClause * | RebuildOMPDetachClause (Expr *Evt, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc) |
Build a new OpenMP 'detach' clause. | |
OMPClause * | RebuildOMPDistScheduleClause (OpenMPDistScheduleClauseKind Kind, Expr *ChunkSize, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation KindLoc, SourceLocation CommaLoc, SourceLocation EndLoc) |
Build a new OpenMP 'dist_schedule' clause. | |
OMPClause * | RebuildOMPToClause (ArrayRef< OpenMPMotionModifierKind > MotionModifiers, ArrayRef< SourceLocation > MotionModifiersLoc, CXXScopeSpec &MapperIdScopeSpec, DeclarationNameInfo &MapperId, SourceLocation ColonLoc, ArrayRef< Expr * > VarList, const OMPVarListLocTy &Locs, ArrayRef< Expr * > UnresolvedMappers) |
Build a new OpenMP 'to' clause. | |
OMPClause * | RebuildOMPFromClause (ArrayRef< OpenMPMotionModifierKind > MotionModifiers, ArrayRef< SourceLocation > MotionModifiersLoc, CXXScopeSpec &MapperIdScopeSpec, DeclarationNameInfo &MapperId, SourceLocation ColonLoc, ArrayRef< Expr * > VarList, const OMPVarListLocTy &Locs, ArrayRef< Expr * > UnresolvedMappers) |
Build a new OpenMP 'from' clause. | |
OMPClause * | RebuildOMPUseDevicePtrClause (ArrayRef< Expr * > VarList, const OMPVarListLocTy &Locs) |
Build a new OpenMP 'use_device_ptr' clause. | |
OMPClause * | RebuildOMPUseDeviceAddrClause (ArrayRef< Expr * > VarList, const OMPVarListLocTy &Locs) |
Build a new OpenMP 'use_device_addr' clause. | |
OMPClause * | RebuildOMPIsDevicePtrClause (ArrayRef< Expr * > VarList, const OMPVarListLocTy &Locs) |
Build a new OpenMP 'is_device_ptr' clause. | |
OMPClause * | RebuildOMPHasDeviceAddrClause (ArrayRef< Expr * > VarList, const OMPVarListLocTy &Locs) |
Build a new OpenMP 'has_device_addr' clause. | |
OMPClause * | RebuildOMPDefaultmapClause (OpenMPDefaultmapClauseModifier M, OpenMPDefaultmapClauseKind Kind, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation MLoc, SourceLocation KindLoc, SourceLocation EndLoc) |
Build a new OpenMP 'defaultmap' clause. | |
OMPClause * | RebuildOMPNontemporalClause (ArrayRef< Expr * > VarList, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc) |
Build a new OpenMP 'nontemporal' clause. | |
OMPClause * | RebuildOMPInclusiveClause (ArrayRef< Expr * > VarList, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc) |
Build a new OpenMP 'inclusive' clause. | |
OMPClause * | RebuildOMPExclusiveClause (ArrayRef< Expr * > VarList, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc) |
Build a new OpenMP 'exclusive' clause. | |
OMPClause * | RebuildOMPUsesAllocatorsClause (ArrayRef< SemaOpenMP::UsesAllocatorsData > Data, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc) |
Build a new OpenMP 'uses_allocators' clause. | |
OMPClause * | RebuildOMPAffinityClause (SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation ColonLoc, SourceLocation EndLoc, Expr *Modifier, ArrayRef< Expr * > Locators) |
Build a new OpenMP 'affinity' clause. | |
OMPClause * | RebuildOMPOrderClause (OpenMPOrderClauseKind Kind, SourceLocation KindKwLoc, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc, OpenMPOrderClauseModifier Modifier, SourceLocation ModifierKwLoc) |
Build a new OpenMP 'order' clause. | |
OMPClause * | RebuildOMPInitClause (Expr *InteropVar, OMPInteropInfo &InteropInfo, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation VarLoc, SourceLocation EndLoc) |
Build a new OpenMP 'init' clause. | |
OMPClause * | RebuildOMPUseClause (Expr *InteropVar, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation VarLoc, SourceLocation EndLoc) |
Build a new OpenMP 'use' clause. | |
OMPClause * | RebuildOMPDestroyClause (Expr *InteropVar, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation VarLoc, SourceLocation EndLoc) |
Build a new OpenMP 'destroy' clause. | |
OMPClause * | RebuildOMPNovariantsClause (Expr *Condition, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc) |
Build a new OpenMP 'novariants' clause. | |
OMPClause * | RebuildOMPNocontextClause (Expr *Condition, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc) |
Build a new OpenMP 'nocontext' clause. | |
OMPClause * | RebuildOMPFilterClause (Expr *ThreadID, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc) |
Build a new OpenMP 'filter' clause. | |
OMPClause * | RebuildOMPBindClause (OpenMPBindClauseKind Kind, SourceLocation KindLoc, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc) |
Build a new OpenMP 'bind' clause. | |
OMPClause * | RebuildOMPXDynCGroupMemClause (Expr *Size, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc) |
Build a new OpenMP 'ompx_dyn_cgroup_mem' clause. | |
OMPClause * | RebuildOMPXAttributeClause (ArrayRef< const Attr * > Attrs, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc) |
Build a new OpenMP 'ompx_attribute' clause. | |
OMPClause * | RebuildOMPXBareClause (SourceLocation StartLoc, SourceLocation EndLoc) |
Build a new OpenMP 'ompx_bare' clause. | |
OMPClause * | RebuildOMPAlignClause (Expr *A, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc) |
Build a new OpenMP 'align' clause. | |
OMPClause * | RebuildOMPAtClause (OpenMPAtClauseKind Kind, SourceLocation KwLoc, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc) |
Build a new OpenMP 'at' clause. | |
OMPClause * | RebuildOMPSeverityClause (OpenMPSeverityClauseKind Kind, SourceLocation KwLoc, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc) |
Build a new OpenMP 'severity' clause. | |
OMPClause * | RebuildOMPMessageClause (Expr *MS, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc) |
Build a new OpenMP 'message' clause. | |
OMPClause * | RebuildOMPDoacrossClause (OpenMPDoacrossClauseModifier DepType, SourceLocation DepLoc, SourceLocation ColonLoc, ArrayRef< Expr * > VarList, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc) |
Build a new OpenMP 'doacross' clause. | |
OMPClause * | RebuildOMPHoldsClause (Expr *A, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc) |
Build a new OpenMP 'holds' clause. | |
ExprResult | RebuildObjCAtSynchronizedOperand (SourceLocation atLoc, Expr *object) |
Rebuild the operand to an Objective-C @synchronized statement. | |
StmtResult | RebuildObjCAtSynchronizedStmt (SourceLocation AtLoc, Expr *Object, Stmt *Body) |
Build a new Objective-C @synchronized statement. | |
StmtResult | RebuildObjCAutoreleasePoolStmt (SourceLocation AtLoc, Stmt *Body) |
Build a new Objective-C @autoreleasepool statement. | |
StmtResult | RebuildObjCForCollectionStmt (SourceLocation ForLoc, Stmt *Element, Expr *Collection, SourceLocation RParenLoc, Stmt *Body) |
Build a new Objective-C fast enumeration statement. | |
VarDecl * | RebuildExceptionDecl (VarDecl *ExceptionDecl, TypeSourceInfo *Declarator, SourceLocation StartLoc, SourceLocation IdLoc, IdentifierInfo *Id) |
Build a new C++ exception declaration. | |
StmtResult | RebuildCXXCatchStmt (SourceLocation CatchLoc, VarDecl *ExceptionDecl, Stmt *Handler) |
Build a new C++ catch statement. | |
StmtResult | RebuildCXXTryStmt (SourceLocation TryLoc, Stmt *TryBlock, ArrayRef< Stmt * > Handlers) |
Build a new C++ try statement. | |
StmtResult | RebuildCXXForRangeStmt (SourceLocation ForLoc, SourceLocation CoawaitLoc, Stmt *Init, SourceLocation ColonLoc, Stmt *Range, Stmt *Begin, Stmt *End, Expr *Cond, Expr *Inc, Stmt *LoopVar, SourceLocation RParenLoc, ArrayRef< MaterializeTemporaryExpr * > LifetimeExtendTemps) |
Build a new C++0x range-based for statement. | |
StmtResult | RebuildMSDependentExistsStmt (SourceLocation KeywordLoc, bool IsIfExists, NestedNameSpecifierLoc QualifierLoc, DeclarationNameInfo NameInfo, Stmt *Nested) |
Build a new C++0x range-based for statement. | |
StmtResult | FinishCXXForRangeStmt (Stmt *ForRange, Stmt *Body) |
Attach body to a C++0x range-based for statement. | |
StmtResult | RebuildSEHTryStmt (bool IsCXXTry, SourceLocation TryLoc, Stmt *TryBlock, Stmt *Handler) |
StmtResult | RebuildSEHExceptStmt (SourceLocation Loc, Expr *FilterExpr, Stmt *Block) |
StmtResult | RebuildSEHFinallyStmt (SourceLocation Loc, Stmt *Block) |
ExprResult | RebuildSYCLUniqueStableNameExpr (SourceLocation OpLoc, SourceLocation LParen, SourceLocation RParen, TypeSourceInfo *TSI) |
ExprResult | RebuildPredefinedExpr (SourceLocation Loc, PredefinedIdentKind IK) |
Build a new predefined expression. | |
ExprResult | RebuildDeclarationNameExpr (const CXXScopeSpec &SS, LookupResult &R, bool RequiresADL) |
Build a new expression that references a declaration. | |
ExprResult | RebuildDeclRefExpr (NestedNameSpecifierLoc QualifierLoc, ValueDecl *VD, const DeclarationNameInfo &NameInfo, NamedDecl *Found, TemplateArgumentListInfo *TemplateArgs) |
Build a new expression that references a declaration. | |
ExprResult | RebuildParenExpr (Expr *SubExpr, SourceLocation LParen, SourceLocation RParen) |
Build a new expression in parentheses. | |
ExprResult | RebuildCXXPseudoDestructorExpr (Expr *Base, SourceLocation OperatorLoc, bool isArrow, CXXScopeSpec &SS, TypeSourceInfo *ScopeType, SourceLocation CCLoc, SourceLocation TildeLoc, PseudoDestructorTypeStorage Destroyed) |
Build a new pseudo-destructor expression. | |
ExprResult | RebuildUnaryOperator (SourceLocation OpLoc, UnaryOperatorKind Opc, Expr *SubExpr) |
Build a new unary operator expression. | |
ExprResult | RebuildOffsetOfExpr (SourceLocation OperatorLoc, TypeSourceInfo *Type, ArrayRef< Sema::OffsetOfComponent > Components, SourceLocation RParenLoc) |
Build a new builtin offsetof expression. | |
ExprResult | RebuildUnaryExprOrTypeTrait (TypeSourceInfo *TInfo, SourceLocation OpLoc, UnaryExprOrTypeTrait ExprKind, SourceRange R) |
Build a new sizeof, alignof or vec_step expression with a type argument. | |
ExprResult | RebuildUnaryExprOrTypeTrait (Expr *SubExpr, SourceLocation OpLoc, UnaryExprOrTypeTrait ExprKind, SourceRange R) |
Build a new sizeof, alignof or vec step expression with an expression argument. | |
ExprResult | RebuildArraySubscriptExpr (Expr *LHS, SourceLocation LBracketLoc, Expr *RHS, SourceLocation RBracketLoc) |
Build a new array subscript expression. | |
ExprResult | RebuildMatrixSubscriptExpr (Expr *Base, Expr *RowIdx, Expr *ColumnIdx, SourceLocation RBracketLoc) |
Build a new matrix subscript expression. | |
ExprResult | RebuildArraySectionExpr (bool IsOMPArraySection, Expr *Base, SourceLocation LBracketLoc, Expr *LowerBound, SourceLocation ColonLocFirst, SourceLocation ColonLocSecond, Expr *Length, Expr *Stride, SourceLocation RBracketLoc) |
Build a new array section expression. | |
ExprResult | RebuildOMPArrayShapingExpr (Expr *Base, SourceLocation LParenLoc, SourceLocation RParenLoc, ArrayRef< Expr * > Dims, ArrayRef< SourceRange > BracketsRanges) |
Build a new array shaping expression. | |
ExprResult | RebuildOMPIteratorExpr (SourceLocation IteratorKwLoc, SourceLocation LLoc, SourceLocation RLoc, ArrayRef< SemaOpenMP::OMPIteratorData > Data) |
Build a new iterator expression. | |
ExprResult | RebuildCallExpr (Expr *Callee, SourceLocation LParenLoc, MultiExprArg Args, SourceLocation RParenLoc, Expr *ExecConfig=nullptr) |
Build a new call expression. | |
ExprResult | RebuildCxxSubscriptExpr (Expr *Callee, SourceLocation LParenLoc, MultiExprArg Args, SourceLocation RParenLoc) |
ExprResult | RebuildMemberExpr (Expr *Base, SourceLocation OpLoc, bool isArrow, NestedNameSpecifierLoc QualifierLoc, SourceLocation TemplateKWLoc, const DeclarationNameInfo &MemberNameInfo, ValueDecl *Member, NamedDecl *FoundDecl, const TemplateArgumentListInfo *ExplicitTemplateArgs, NamedDecl *FirstQualifierInScope) |
Build a new member access expression. | |
ExprResult | RebuildBinaryOperator (SourceLocation OpLoc, BinaryOperatorKind Opc, Expr *LHS, Expr *RHS, bool ForFoldExpression=false) |
Build a new binary operator expression. | |
ExprResult | RebuildCXXRewrittenBinaryOperator (SourceLocation OpLoc, BinaryOperatorKind Opcode, const UnresolvedSetImpl &UnqualLookups, Expr *LHS, Expr *RHS) |
Build a new rewritten operator expression. | |
ExprResult | RebuildConditionalOperator (Expr *Cond, SourceLocation QuestionLoc, Expr *LHS, SourceLocation ColonLoc, Expr *RHS) |
Build a new conditional operator expression. | |
ExprResult | RebuildCStyleCastExpr (SourceLocation LParenLoc, TypeSourceInfo *TInfo, SourceLocation RParenLoc, Expr *SubExpr) |
Build a new C-style cast expression. | |
ExprResult | RebuildCompoundLiteralExpr (SourceLocation LParenLoc, TypeSourceInfo *TInfo, SourceLocation RParenLoc, Expr *Init) |
Build a new compound literal expression. | |
ExprResult | RebuildExtVectorElementExpr (Expr *Base, SourceLocation OpLoc, bool IsArrow, SourceLocation AccessorLoc, IdentifierInfo &Accessor) |
Build a new extended vector element access expression. | |
ExprResult | RebuildInitList (SourceLocation LBraceLoc, MultiExprArg Inits, SourceLocation RBraceLoc) |
Build a new initializer list expression. | |
ExprResult | RebuildDesignatedInitExpr (Designation &Desig, MultiExprArg ArrayExprs, SourceLocation EqualOrColonLoc, bool GNUSyntax, Expr *Init) |
Build a new designated initializer expression. | |
ExprResult | RebuildImplicitValueInitExpr (QualType T) |
Build a new value-initialized expression. | |
ExprResult | RebuildVAArgExpr (SourceLocation BuiltinLoc, Expr *SubExpr, TypeSourceInfo *TInfo, SourceLocation RParenLoc) |
Build a new va_arg expression. | |
ExprResult | RebuildParenListExpr (SourceLocation LParenLoc, MultiExprArg SubExprs, SourceLocation RParenLoc) |
Build a new expression list in parentheses. | |
ExprResult | RebuildCXXParenListInitExpr (ArrayRef< Expr * > Args, QualType T, unsigned NumUserSpecifiedExprs, SourceLocation InitLoc, SourceLocation LParenLoc, SourceLocation RParenLoc) |
ExprResult | RebuildAddrLabelExpr (SourceLocation AmpAmpLoc, SourceLocation LabelLoc, LabelDecl *Label) |
Build a new address-of-label expression. | |
ExprResult | RebuildStmtExpr (SourceLocation LParenLoc, Stmt *SubStmt, SourceLocation RParenLoc, unsigned TemplateDepth) |
Build a new GNU statement expression. | |
ExprResult | RebuildChooseExpr (SourceLocation BuiltinLoc, Expr *Cond, Expr *LHS, Expr *RHS, SourceLocation RParenLoc) |
Build a new __builtin_choose_expr expression. | |
ExprResult | RebuildGenericSelectionExpr (SourceLocation KeyLoc, SourceLocation DefaultLoc, SourceLocation RParenLoc, Expr *ControllingExpr, ArrayRef< TypeSourceInfo * > Types, ArrayRef< Expr * > Exprs) |
Build a new generic selection expression with an expression predicate. | |
ExprResult | RebuildGenericSelectionExpr (SourceLocation KeyLoc, SourceLocation DefaultLoc, SourceLocation RParenLoc, TypeSourceInfo *ControllingType, ArrayRef< TypeSourceInfo * > Types, ArrayRef< Expr * > Exprs) |
Build a new generic selection expression with a type predicate. | |
ExprResult | RebuildCXXOperatorCallExpr (OverloadedOperatorKind Op, SourceLocation OpLoc, SourceLocation CalleeLoc, bool RequiresADL, const UnresolvedSetImpl &Functions, Expr *First, Expr *Second) |
Build a new overloaded operator call expression. | |
ExprResult | RebuildCXXNamedCastExpr (SourceLocation OpLoc, Stmt::StmtClass Class, SourceLocation LAngleLoc, TypeSourceInfo *TInfo, SourceLocation RAngleLoc, SourceLocation LParenLoc, Expr *SubExpr, SourceLocation RParenLoc) |
Build a new C++ "named" cast expression, such as static_cast or reinterpret_cast. | |
ExprResult | RebuildCXXStaticCastExpr (SourceLocation OpLoc, SourceLocation LAngleLoc, TypeSourceInfo *TInfo, SourceLocation RAngleLoc, SourceLocation LParenLoc, Expr *SubExpr, SourceLocation RParenLoc) |
Build a new C++ static_cast expression. | |
ExprResult | RebuildCXXDynamicCastExpr (SourceLocation OpLoc, SourceLocation LAngleLoc, TypeSourceInfo *TInfo, SourceLocation RAngleLoc, SourceLocation LParenLoc, Expr *SubExpr, SourceLocation RParenLoc) |
Build a new C++ dynamic_cast expression. | |
ExprResult | RebuildCXXReinterpretCastExpr (SourceLocation OpLoc, SourceLocation LAngleLoc, TypeSourceInfo *TInfo, SourceLocation RAngleLoc, SourceLocation LParenLoc, Expr *SubExpr, SourceLocation RParenLoc) |
Build a new C++ reinterpret_cast expression. | |
ExprResult | RebuildCXXConstCastExpr (SourceLocation OpLoc, SourceLocation LAngleLoc, TypeSourceInfo *TInfo, SourceLocation RAngleLoc, SourceLocation LParenLoc, Expr *SubExpr, SourceLocation RParenLoc) |
Build a new C++ const_cast expression. | |
ExprResult | RebuildCXXAddrspaceCastExpr (SourceLocation OpLoc, SourceLocation LAngleLoc, TypeSourceInfo *TInfo, SourceLocation RAngleLoc, SourceLocation LParenLoc, Expr *SubExpr, SourceLocation RParenLoc) |
ExprResult | RebuildCXXFunctionalCastExpr (TypeSourceInfo *TInfo, SourceLocation LParenLoc, Expr *Sub, SourceLocation RParenLoc, bool ListInitialization) |
Build a new C++ functional-style cast expression. | |
ExprResult | RebuildBuiltinBitCastExpr (SourceLocation KWLoc, TypeSourceInfo *TSI, Expr *Sub, SourceLocation RParenLoc) |
Build a new C++ __builtin_bit_cast expression. | |
ExprResult | RebuildCXXTypeidExpr (QualType TypeInfoType, SourceLocation TypeidLoc, TypeSourceInfo *Operand, SourceLocation RParenLoc) |
Build a new C++ typeid(type) expression. | |
ExprResult | RebuildCXXTypeidExpr (QualType TypeInfoType, SourceLocation TypeidLoc, Expr *Operand, SourceLocation RParenLoc) |
Build a new C++ typeid(expr) expression. | |
ExprResult | RebuildCXXUuidofExpr (QualType Type, SourceLocation TypeidLoc, TypeSourceInfo *Operand, SourceLocation RParenLoc) |
Build a new C++ __uuidof(type) expression. | |
ExprResult | RebuildCXXUuidofExpr (QualType Type, SourceLocation TypeidLoc, Expr *Operand, SourceLocation RParenLoc) |
Build a new C++ __uuidof(expr) expression. | |
ExprResult | RebuildCXXThisExpr (SourceLocation ThisLoc, QualType ThisType, bool isImplicit) |
Build a new C++ "this" expression. | |
ExprResult | RebuildCXXThrowExpr (SourceLocation ThrowLoc, Expr *Sub, bool IsThrownVariableInScope) |
Build a new C++ throw expression. | |
ExprResult | RebuildCXXDefaultArgExpr (SourceLocation Loc, ParmVarDecl *Param, Expr *RewrittenExpr) |
Build a new C++ default-argument expression. | |
ExprResult | RebuildCXXDefaultInitExpr (SourceLocation Loc, FieldDecl *Field) |
Build a new C++11 default-initialization expression. | |
ExprResult | RebuildCXXScalarValueInitExpr (TypeSourceInfo *TSInfo, SourceLocation LParenLoc, SourceLocation RParenLoc) |
Build a new C++ zero-initialization expression. | |
ExprResult | RebuildCXXNewExpr (SourceLocation StartLoc, bool UseGlobal, SourceLocation PlacementLParen, MultiExprArg PlacementArgs, SourceLocation PlacementRParen, SourceRange TypeIdParens, QualType AllocatedType, TypeSourceInfo *AllocatedTypeInfo, std::optional< Expr * > ArraySize, SourceRange DirectInitRange, Expr *Initializer) |
Build a new C++ "new" expression. | |
ExprResult | RebuildCXXDeleteExpr (SourceLocation StartLoc, bool IsGlobalDelete, bool IsArrayForm, Expr *Operand) |
Build a new C++ "delete" expression. | |
ExprResult | RebuildTypeTrait (TypeTrait Trait, SourceLocation StartLoc, ArrayRef< TypeSourceInfo * > Args, SourceLocation RParenLoc) |
Build a new type trait expression. | |
ExprResult | RebuildArrayTypeTrait (ArrayTypeTrait Trait, SourceLocation StartLoc, TypeSourceInfo *TSInfo, Expr *DimExpr, SourceLocation RParenLoc) |
Build a new array type trait expression. | |
ExprResult | RebuildExpressionTrait (ExpressionTrait Trait, SourceLocation StartLoc, Expr *Queried, SourceLocation RParenLoc) |
Build a new expression trait expression. | |
ExprResult | RebuildDependentScopeDeclRefExpr (NestedNameSpecifierLoc QualifierLoc, SourceLocation TemplateKWLoc, const DeclarationNameInfo &NameInfo, const TemplateArgumentListInfo *TemplateArgs, bool IsAddressOfOperand, TypeSourceInfo **RecoveryTSI) |
Build a new (previously unresolved) declaration reference expression. | |
ExprResult | RebuildTemplateIdExpr (const CXXScopeSpec &SS, SourceLocation TemplateKWLoc, LookupResult &R, bool RequiresADL, const TemplateArgumentListInfo *TemplateArgs) |
Build a new template-id expression. | |
ExprResult | RebuildCXXConstructExpr (QualType T, SourceLocation Loc, CXXConstructorDecl *Constructor, bool IsElidable, MultiExprArg Args, bool HadMultipleCandidates, bool ListInitialization, bool StdInitListInitialization, bool RequiresZeroInit, CXXConstructionKind ConstructKind, SourceRange ParenRange) |
Build a new object-construction expression. | |
ExprResult | RebuildCXXInheritedCtorInitExpr (QualType T, SourceLocation Loc, CXXConstructorDecl *Constructor, bool ConstructsVBase, bool InheritedFromVBase) |
Build a new implicit construction via inherited constructor expression. | |
ExprResult | RebuildCXXTemporaryObjectExpr (TypeSourceInfo *TSInfo, SourceLocation LParenOrBraceLoc, MultiExprArg Args, SourceLocation RParenOrBraceLoc, bool ListInitialization) |
Build a new object-construction expression. | |
ExprResult | RebuildCXXUnresolvedConstructExpr (TypeSourceInfo *TSInfo, SourceLocation LParenLoc, MultiExprArg Args, SourceLocation RParenLoc, bool ListInitialization) |
Build a new object-construction expression. | |
ExprResult | RebuildCXXDependentScopeMemberExpr (Expr *BaseE, QualType BaseType, bool IsArrow, SourceLocation OperatorLoc, NestedNameSpecifierLoc QualifierLoc, SourceLocation TemplateKWLoc, NamedDecl *FirstQualifierInScope, const DeclarationNameInfo &MemberNameInfo, const TemplateArgumentListInfo *TemplateArgs) |
Build a new member reference expression. | |
ExprResult | RebuildUnresolvedMemberExpr (Expr *BaseE, QualType BaseType, SourceLocation OperatorLoc, bool IsArrow, NestedNameSpecifierLoc QualifierLoc, SourceLocation TemplateKWLoc, NamedDecl *FirstQualifierInScope, LookupResult &R, const TemplateArgumentListInfo *TemplateArgs) |
Build a new member reference expression. | |
ExprResult | RebuildCXXNoexceptExpr (SourceRange Range, Expr *Arg) |
Build a new noexcept expression. | |
UnsignedOrNone | ComputeSizeOfPackExprWithoutSubstitution (ArrayRef< TemplateArgument > PackArgs) |
ExprResult | RebuildSizeOfPackExpr (SourceLocation OperatorLoc, NamedDecl *Pack, SourceLocation PackLoc, SourceLocation RParenLoc, UnsignedOrNone Length, ArrayRef< TemplateArgument > PartialArgs) |
Build a new expression to compute the length of a parameter pack. | |
ExprResult | RebuildPackIndexingExpr (SourceLocation EllipsisLoc, SourceLocation RSquareLoc, Expr *PackIdExpression, Expr *IndexExpr, ArrayRef< Expr * > ExpandedExprs, bool FullySubstituted=false) |
ExprResult | RebuildSourceLocExpr (SourceLocIdentKind Kind, QualType ResultTy, SourceLocation BuiltinLoc, SourceLocation RPLoc, DeclContext *ParentContext) |
Build a new expression representing a call to a source location builtin. | |
ExprResult | RebuildConceptSpecializationExpr (NestedNameSpecifierLoc NNS, SourceLocation TemplateKWLoc, DeclarationNameInfo ConceptNameInfo, NamedDecl *FoundDecl, ConceptDecl *NamedConcept, TemplateArgumentListInfo *TALI) |
Build a new Objective-C boxed expression. | |
ExprResult | RebuildRequiresExpr (SourceLocation RequiresKWLoc, RequiresExprBodyDecl *Body, SourceLocation LParenLoc, ArrayRef< ParmVarDecl * > LocalParameters, SourceLocation RParenLoc, ArrayRef< concepts::Requirement * > Requirements, SourceLocation ClosingBraceLoc) |
Build a new requires expression. | |
concepts::TypeRequirement * | RebuildTypeRequirement (concepts::Requirement::SubstitutionDiagnostic *SubstDiag) |
concepts::TypeRequirement * | RebuildTypeRequirement (TypeSourceInfo *T) |
concepts::ExprRequirement * | RebuildExprRequirement (concepts::Requirement::SubstitutionDiagnostic *SubstDiag, bool IsSimple, SourceLocation NoexceptLoc, concepts::ExprRequirement::ReturnTypeRequirement Ret) |
concepts::ExprRequirement * | RebuildExprRequirement (Expr *E, bool IsSimple, SourceLocation NoexceptLoc, concepts::ExprRequirement::ReturnTypeRequirement Ret) |
concepts::NestedRequirement * | RebuildNestedRequirement (StringRef InvalidConstraintEntity, const ASTConstraintSatisfaction &Satisfaction) |
concepts::NestedRequirement * | RebuildNestedRequirement (Expr *Constraint) |
ExprResult | RebuildObjCBoxedExpr (SourceRange SR, Expr *ValueExpr) |
Build a new Objective-C boxed expression. | |
ExprResult | RebuildObjCArrayLiteral (SourceRange Range, Expr **Elements, unsigned NumElements) |
Build a new Objective-C array literal. | |
ExprResult | RebuildObjCSubscriptRefExpr (SourceLocation RB, Expr *Base, Expr *Key, ObjCMethodDecl *getterMethod, ObjCMethodDecl *setterMethod) |
ExprResult | RebuildObjCDictionaryLiteral (SourceRange Range, MutableArrayRef< ObjCDictionaryElement > Elements) |
Build a new Objective-C dictionary literal. | |
ExprResult | RebuildObjCEncodeExpr (SourceLocation AtLoc, TypeSourceInfo *EncodeTypeInfo, SourceLocation RParenLoc) |
Build a new Objective-C @encode expression. | |
ExprResult | RebuildObjCMessageExpr (TypeSourceInfo *ReceiverTypeInfo, Selector Sel, ArrayRef< SourceLocation > SelectorLocs, ObjCMethodDecl *Method, SourceLocation LBracLoc, MultiExprArg Args, SourceLocation RBracLoc) |
Build a new Objective-C class message. | |
ExprResult | RebuildObjCMessageExpr (Expr *Receiver, Selector Sel, ArrayRef< SourceLocation > SelectorLocs, ObjCMethodDecl *Method, SourceLocation LBracLoc, MultiExprArg Args, SourceLocation RBracLoc) |
Build a new Objective-C instance message. | |
ExprResult | RebuildObjCMessageExpr (SourceLocation SuperLoc, Selector Sel, ArrayRef< SourceLocation > SelectorLocs, QualType SuperType, ObjCMethodDecl *Method, SourceLocation LBracLoc, MultiExprArg Args, SourceLocation RBracLoc) |
Build a new Objective-C instance/class message to 'super'. | |
ExprResult | RebuildObjCIvarRefExpr (Expr *BaseArg, ObjCIvarDecl *Ivar, SourceLocation IvarLoc, bool IsArrow, bool IsFreeIvar) |
Build a new Objective-C ivar reference expression. | |
ExprResult | RebuildObjCPropertyRefExpr (Expr *BaseArg, ObjCPropertyDecl *Property, SourceLocation PropertyLoc) |
Build a new Objective-C property reference expression. | |
ExprResult | RebuildObjCPropertyRefExpr (Expr *Base, QualType T, ObjCMethodDecl *Getter, ObjCMethodDecl *Setter, SourceLocation PropertyLoc) |
Build a new Objective-C property reference expression. | |
ExprResult | RebuildObjCIsaExpr (Expr *BaseArg, SourceLocation IsaLoc, SourceLocation OpLoc, bool IsArrow) |
Build a new Objective-C "isa" expression. | |
ExprResult | RebuildShuffleVectorExpr (SourceLocation BuiltinLoc, MultiExprArg SubExprs, SourceLocation RParenLoc) |
Build a new shuffle vector expression. | |
ExprResult | RebuildConvertVectorExpr (SourceLocation BuiltinLoc, Expr *SrcExpr, TypeSourceInfo *DstTInfo, SourceLocation RParenLoc) |
Build a new convert vector expression. | |
TemplateArgumentLoc | RebuildPackExpansion (TemplateArgumentLoc Pattern, SourceLocation EllipsisLoc, UnsignedOrNone NumExpansions) |
Build a new template argument pack expansion. | |
ExprResult | RebuildPackExpansion (Expr *Pattern, SourceLocation EllipsisLoc, UnsignedOrNone NumExpansions) |
Build a new expression pack expansion. | |
ExprResult | RebuildCXXFoldExpr (UnresolvedLookupExpr *ULE, SourceLocation LParenLoc, Expr *LHS, BinaryOperatorKind Operator, SourceLocation EllipsisLoc, Expr *RHS, SourceLocation RParenLoc, UnsignedOrNone NumExpansions) |
Build a new C++1z fold-expression. | |
ExprResult | RebuildLambdaExpr (SourceLocation StartLoc, SourceLocation EndLoc, LambdaScopeInfo *LSI) |
ExprResult | RebuildEmptyCXXFoldExpr (SourceLocation EllipsisLoc, BinaryOperatorKind Operator) |
Build an empty C++1z fold-expression with the given operator. | |
ExprResult | RebuildAtomicExpr (SourceLocation BuiltinLoc, MultiExprArg SubExprs, AtomicExpr::AtomicOp Op, SourceLocation RParenLoc) |
Build a new atomic operation expression. | |
ExprResult | RebuildRecoveryExpr (SourceLocation BeginLoc, SourceLocation EndLoc, ArrayRef< Expr * > SubExprs, QualType Type) |
StmtResult | RebuildOpenACCComputeConstruct (OpenACCDirectiveKind K, SourceLocation BeginLoc, SourceLocation DirLoc, SourceLocation EndLoc, ArrayRef< OpenACCClause * > Clauses, StmtResult StrBlock) |
StmtResult | RebuildOpenACCLoopConstruct (SourceLocation BeginLoc, SourceLocation DirLoc, SourceLocation EndLoc, ArrayRef< OpenACCClause * > Clauses, StmtResult Loop) |
StmtResult | RebuildOpenACCCombinedConstruct (OpenACCDirectiveKind K, SourceLocation BeginLoc, SourceLocation DirLoc, SourceLocation EndLoc, ArrayRef< OpenACCClause * > Clauses, StmtResult Loop) |
StmtResult | RebuildOpenACCDataConstruct (SourceLocation BeginLoc, SourceLocation DirLoc, SourceLocation EndLoc, ArrayRef< OpenACCClause * > Clauses, StmtResult StrBlock) |
StmtResult | RebuildOpenACCEnterDataConstruct (SourceLocation BeginLoc, SourceLocation DirLoc, SourceLocation EndLoc, ArrayRef< OpenACCClause * > Clauses) |
StmtResult | RebuildOpenACCExitDataConstruct (SourceLocation BeginLoc, SourceLocation DirLoc, SourceLocation EndLoc, ArrayRef< OpenACCClause * > Clauses) |
StmtResult | RebuildOpenACCHostDataConstruct (SourceLocation BeginLoc, SourceLocation DirLoc, SourceLocation EndLoc, ArrayRef< OpenACCClause * > Clauses, StmtResult StrBlock) |
StmtResult | RebuildOpenACCInitConstruct (SourceLocation BeginLoc, SourceLocation DirLoc, SourceLocation EndLoc, ArrayRef< OpenACCClause * > Clauses) |
StmtResult | RebuildOpenACCShutdownConstruct (SourceLocation BeginLoc, SourceLocation DirLoc, SourceLocation EndLoc, ArrayRef< OpenACCClause * > Clauses) |
StmtResult | RebuildOpenACCSetConstruct (SourceLocation BeginLoc, SourceLocation DirLoc, SourceLocation EndLoc, ArrayRef< OpenACCClause * > Clauses) |
StmtResult | RebuildOpenACCUpdateConstruct (SourceLocation BeginLoc, SourceLocation DirLoc, SourceLocation EndLoc, ArrayRef< OpenACCClause * > Clauses) |
StmtResult | RebuildOpenACCWaitConstruct (SourceLocation BeginLoc, SourceLocation DirLoc, SourceLocation LParenLoc, Expr *DevNumExpr, SourceLocation QueuesLoc, ArrayRef< Expr * > QueueIdExprs, SourceLocation RParenLoc, SourceLocation EndLoc, ArrayRef< OpenACCClause * > Clauses) |
StmtResult | RebuildOpenACCCacheConstruct (SourceLocation BeginLoc, SourceLocation DirLoc, SourceLocation LParenLoc, SourceLocation ReadOnlyLoc, ArrayRef< Expr * > VarList, SourceLocation RParenLoc, SourceLocation EndLoc) |
StmtResult | RebuildOpenACCAtomicConstruct (SourceLocation BeginLoc, SourceLocation DirLoc, OpenACCAtomicKind AtKind, SourceLocation EndLoc, ArrayRef< OpenACCClause * > Clauses, StmtResult AssociatedStmt) |
ExprResult | RebuildOpenACCAsteriskSizeExpr (SourceLocation AsteriskLoc) |
template<typename Derived> | |
QualType | TransformFunctionProtoType (TypeLocBuilder &TLB, FunctionProtoTypeLoc TL) |
QualType | TransformTypeWithDeducedTST (QualType T) |
Transform a type that is permitted to produce a DeducedTemplateSpecializationType. | |
TypeSourceInfo * | TransformTypeWithDeducedTST (TypeSourceInfo *DI) |
Static Public Member Functions | |
static ExprResult | Owned (Expr *E) |
static StmtResult | Owned (Stmt *S) |
Protected Attributes | |
Sema & | SemaRef |
llvm::DenseMap< Decl *, Decl * > | TransformedLocalDecls |
The set of local declarations that have been transformed, for cases where we are forced to build new declarations within the transformer rather than in the subclass (e.g., lambda closure types). |
A semantic tree transformation that allows one to transform one abstract syntax tree into another.
A new tree transformation is defined by creating a new subclass X
of TreeTransform<X>
and then overriding certain operations to provide behavior specific to that transformation. For example, template instantiation is implemented as a tree transformation where the transformation of TemplateTypeParmType nodes involves substituting the template arguments for their corresponding template parameters; a similar transformation is performed for non-type template parameters and template template parameters.
This tree-transformation template uses static polymorphism to allow subclasses to customize any of its operations. Thus, a subclass can override any of the transformation or rebuild operators by providing an operation with the same signature as the default implementation. The overriding function should not be virtual.
Semantic tree transformations are split into two stages, either of which can be replaced by a subclass. The "transform" step transforms an AST node or the parts of an AST node using the various transformation functions, then passes the pieces on to the "rebuild" step, which constructs a new AST node of the appropriate kind from the pieces. The default transformation routines recursively transform the operands to composite AST nodes (e.g., the pointee type of a PointerType node) and, if any of those operand nodes were changed by the transformation, invokes the rebuild operation to create a new AST node.
Subclasses can customize the transformation at various levels. The most coarse-grained transformations involve replacing TransformType(), TransformExpr(), TransformDecl(), TransformNestedNameSpecifierLoc(), TransformTemplateName(), or TransformTemplateArgument() with entirely new implementations.
For more fine-grained transformations, subclasses can replace any of the TransformXXX
functions (where XXX is the name of an AST node, e.g., PointerType, StmtExpr) to alter the transformation. As mentioned previously, replacing TransformTemplateTypeParmType() allows template instantiation to substitute template arguments for their corresponding template parameters. Additionally, subclasses can override the RebuildXXX
functions to control how AST nodes are rebuilt when their operands change. By default, TreeTransform
will invoke semantic analysis to rebuild AST nodes. However, certain other tree transformations (e.g, cloning) may be able to use more efficient rebuild steps.
There are a handful of other functions that can be overridden, allowing one to avoid traversing nodes that don't need any transformation (AlreadyTransformed()
), force rebuilding AST nodes even when their operands have not changed (AlwaysRebuild()
), and customize the default locations and entity names used for type-checking (getBaseLocation()
, getBaseEntity()
).
Definition at line 122 of file TreeTransform.h.
|
strong |
The reason why the value of a statement is not discarded, if any.
Enumerator | |
---|---|
Discarded | |
NotDiscarded | |
StmtExprResult |
Definition at line 394 of file TreeTransform.h.
|
inline |
Initializes a new tree transformer.
Definition at line 154 of file TreeTransform.h.
Referenced by clang::TreeTransform< Derived >::TemporaryBase::TemporaryBase().
|
inline |
Wether CXXConstructExpr can be skipped when they are implicit.
They will be reconstructed when used if needed. This is useful when the user that cause rebuilding of the CXXConstructExpr is outside of the expression at which the TreeTransform started.
Definition at line 192 of file TreeTransform.h.
|
inline |
Determine whether the given type T
has already been transformed.
Subclasses can provide an alternative implementation of this routine to short-circuit evaluation when it is known that a given type will not change. For example, template instantiation need not traverse non-dependent types.
Definition at line 245 of file TreeTransform.h.
Referenced by TransformNestedNameSpecifierLoc(), TransformType(), TransformType(), TransformTypeWithDeducedTST(), and TransformTypeWithDeducedTST().
|
inline |
Whether the transformation should always rebuild AST nodes, even if none of the children have changed.
Subclasses may override this function to specify when the transformation should rebuild all AST nodes.
We must always rebuild all AST nodes when performing variadic template pack expansion, in order to avoid violating the AST invariant that each statement node appears at most once in its containing declaration.
Definition at line 180 of file TreeTransform.h.
Referenced by TransformCXXNamedCastExpr(), TransformFunctionProtoType(), TransformNestedNameSpecifierLoc(), TransformNestedRequirement(), TransformParenDependentScopeDeclRefExpr(), TransformReferenceType(), TransformTagType(), TransformTemplateName(), and TransformTypeRequirement().
|
inline |
Definition at line 822 of file TreeTransform.h.
UnsignedOrNone clang::TreeTransform< Derived >::ComputeSizeOfPackExprWithoutSubstitution | ( | ArrayRef< TemplateArgument > | PackArgs | ) |
Definition at line 16099 of file TreeTransform.h.
References clang::TemplateArgumentLoc::getArgument(), getDerived(), getSema(), InventTemplateArgumentLoc(), clang::Result, and TransformTemplateArgument().
|
inline |
Determine whether the given call argument should be dropped, e.g., because it is a default argument.
Subclasses can provide an alternative implementation of this routine to determine which kinds of call arguments get dropped. By default, CXXDefaultArgument nodes are dropped (prior to transformation).
Definition at line 263 of file TreeTransform.h.
Referenced by TransformExprs().
|
inline |
Note to the derived class when a function parameter pack is being expanded.
Definition at line 353 of file TreeTransform.h.
|
inline |
Attach body to a C++0x range-based for statement.
By default, performs semantic analysis to finish the new statement. Subclasses may override this routine to provide different behavior.
Definition at line 2675 of file TreeTransform.h.
|
inline |
"Forget" about the partially-substituted pack template argument, when performing an instantiation that must preserve the parameter pack use.
This routine is meant to be overridden by the template instantiator.
Definition at line 319 of file TreeTransform.h.
|
inline |
"Forget" the template substitution to allow transforming the AST without any template instantiations.
This is used to expand template packs when their size is not known in advance (e.g. for builtins that produce type packs).
Definition at line 334 of file TreeTransform.h.
|
inline |
Returns the name of the entity being transformed, if that information was not available elsewhere in the AST.
By default, returns an empty name. Subclasses can provide an alternative implementation with a more precise name.
Definition at line 207 of file TreeTransform.h.
Referenced by RebuildArrayType(), RebuildBlockPointerType(), RebuildFunctionProtoType(), RebuildMemberPointerType(), RebuildPointerType(), RebuildReferenceType(), clang::TreeTransform< Derived >::TemporaryBase::TemporaryBase(), TransformType(), and TransformTypeWithDeducedTST().
|
inline |
Returns the location of the entity being transformed, if that information was not available elsewhere in the AST.
By default, returns no source-location information. Subclasses can provide an alternative implementation that provides better location information.
Definition at line 200 of file TreeTransform.h.
Referenced by InventTemplateArgumentLoc(), clang::TreeTransform< AdjustConstraintDepth >::InventTypeSourceInfo(), RebuildFunctionProtoType(), clang::TreeTransform< Derived >::TemporaryBase::TemporaryBase(), TransformTemplateArgument(), TransformType(), and TransformTypeWithDeducedTST().
|
inline |
Retrieves a reference to the derived class.
Definition at line 157 of file TreeTransform.h.
Referenced by ComputeSizeOfPackExprWithoutSubstitution(), InventTemplateArgumentLoc(), clang::TreeTransform< AdjustConstraintDepth >::InventTypeSourceInfo(), PreparePackForExpansion(), RebuildArrayType(), RebuildBlockPointerType(), RebuildConstantArrayType(), clang::TreeTransform< AdjustConstraintDepth >::RebuildCXXNamedCastExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildDependentNameType(), RebuildDependentSizedArrayType(), RebuildFunctionProtoType(), RebuildIncompleteArrayType(), RebuildMemberPointerType(), RebuildPointerType(), RebuildReferenceType(), RebuildTemplateName(), RebuildVariableArrayType(), SkipLambdaBody(), TransformAddressOfOperand(), TransformCompoundStmt(), TransformCondition(), TransformCXXNamedCastExpr(), TransformDeclarationNameInfo(), clang::TreeTransform< AdjustConstraintDepth >::TransformDefinition(), TransformExceptionSpec(), TransformExprRequirement(), TransformExprs(), clang::TreeTransform< AdjustConstraintDepth >::TransformFirstQualifierInScope(), TransformFunctionProtoType(), TransformFunctionTypeParam(), TransformFunctionTypeParams(), clang::TreeTransform< AdjustConstraintDepth >::TransformFunctionTypeParams(), TransformInitializer(), TransformNamedTemplateTemplateArgument(), TransformNestedNameSpecifierLoc(), TransformNestedRequirement(), TransformOMPExecutableDirective(), TransformOMPInformationalDirective(), clang::transformOMPMappableExprListClause(), TransformOverloadExprDecls(), TransformParenDependentScopeDeclRefExpr(), TransformReferenceType(), TransformRequiresExprRequirements(), clang::TreeTransform< AdjustConstraintDepth >::TransformRequiresTypeParams(), TransformSEHHandler(), TransformStmt(), TransformSubstTemplateTypeParmPackType(), TransformTagType(), TransformTemplateArgument(), TransformTemplateArguments(), TransformTemplateName(), TransformTemplateSpecializationType(), TransformTemplateTypeParmType(), TransformType(), TransformType(), TransformTypeRequirement(), TransformTypeWithDeducedTST(), and TransformTypeWithDeducedTST().
|
inline |
Retrieves a reference to the derived class.
Definition at line 160 of file TreeTransform.h.
|
inline |
Retrieves a reference to the semantic analysis object used for this tree transform.
Definition at line 169 of file TreeTransform.h.
Referenced by ComputeSizeOfPackExprWithoutSubstitution(), clang::TreeTransform< AdjustConstraintDepth >::FinishCXXForRangeStmt(), InventTemplateArgumentLoc(), PreparePackForExpansion(), clang::TreeTransform< AdjustConstraintDepth >::RebuildAddrLabelExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildArraySectionExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildArraySubscriptExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildArrayTypeTrait(), clang::TreeTransform< AdjustConstraintDepth >::RebuildAtomicExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildBinaryOperator(), clang::TreeTransform< AdjustConstraintDepth >::RebuildBuiltinBitCastExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildCallExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildCaseStmt(), clang::TreeTransform< AdjustConstraintDepth >::RebuildCaseStmtBody(), clang::TreeTransform< AdjustConstraintDepth >::RebuildCoawaitExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildCompoundLiteralExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildCompoundStmt(), clang::TreeTransform< AdjustConstraintDepth >::RebuildConceptSpecializationExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildConditionalOperator(), clang::TreeTransform< AdjustConstraintDepth >::RebuildCoreturnStmt(), clang::TreeTransform< AdjustConstraintDepth >::RebuildCoroutineBodyStmt(), clang::TreeTransform< AdjustConstraintDepth >::RebuildCoyieldExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildCStyleCastExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildCXXAddrspaceCastExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildCXXCatchStmt(), clang::TreeTransform< AdjustConstraintDepth >::RebuildCXXConstCastExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildCXXConstructExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildCXXDefaultArgExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildCXXDefaultInitExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildCXXDeleteExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildCXXDynamicCastExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildCXXFoldExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildCXXForRangeStmt(), clang::TreeTransform< AdjustConstraintDepth >::RebuildCXXFunctionalCastExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildCXXInheritedCtorInitExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildCXXNewExpr(), RebuildCXXOperatorCallExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildCXXParenListInitExpr(), RebuildCXXPseudoDestructorExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildCXXReinterpretCastExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildCXXRewrittenBinaryOperator(), clang::TreeTransform< AdjustConstraintDepth >::RebuildCXXScalarValueInitExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildCXXStaticCastExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildCxxSubscriptExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildCXXTemporaryObjectExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildCXXThisExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildCXXThrowExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildCXXTryStmt(), clang::TreeTransform< AdjustConstraintDepth >::RebuildCXXTypeidExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildCXXTypeidExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildCXXUnresolvedConstructExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildCXXUuidofExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildCXXUuidofExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildDeclarationNameExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildDeclRefExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildDeclStmt(), clang::TreeTransform< AdjustConstraintDepth >::RebuildDefaultStmt(), clang::TreeTransform< AdjustConstraintDepth >::RebuildDependentCoawaitExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildDependentScopeDeclRefExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildDoStmt(), clang::TreeTransform< AdjustConstraintDepth >::RebuildEmptyCXXFoldExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildExceptionDecl(), clang::TreeTransform< AdjustConstraintDepth >::RebuildExpressionTrait(), clang::TreeTransform< AdjustConstraintDepth >::RebuildExtVectorElementExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildForStmt(), clang::TreeTransform< AdjustConstraintDepth >::RebuildGCCAsmStmt(), clang::TreeTransform< AdjustConstraintDepth >::RebuildGenericSelectionExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildGenericSelectionExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildGotoStmt(), clang::TreeTransform< AdjustConstraintDepth >::RebuildIfStmt(), clang::TreeTransform< AdjustConstraintDepth >::RebuildIndirectGotoStmt(), clang::TreeTransform< AdjustConstraintDepth >::RebuildLambdaExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildMatrixSubscriptExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildMemberExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildMSAsmStmt(), clang::TreeTransform< AdjustConstraintDepth >::RebuildMSDependentExistsStmt(), clang::TreeTransform< AdjustConstraintDepth >::RebuildObjCArrayLiteral(), clang::TreeTransform< AdjustConstraintDepth >::RebuildObjCAtCatchStmt(), clang::TreeTransform< AdjustConstraintDepth >::RebuildObjCAtFinallyStmt(), clang::TreeTransform< AdjustConstraintDepth >::RebuildObjCAtSynchronizedOperand(), clang::TreeTransform< AdjustConstraintDepth >::RebuildObjCAtSynchronizedStmt(), clang::TreeTransform< AdjustConstraintDepth >::RebuildObjCAtThrowStmt(), clang::TreeTransform< AdjustConstraintDepth >::RebuildObjCAtTryStmt(), clang::TreeTransform< AdjustConstraintDepth >::RebuildObjCAutoreleasePoolStmt(), clang::TreeTransform< AdjustConstraintDepth >::RebuildObjCBoxedExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildObjCDictionaryLiteral(), clang::TreeTransform< AdjustConstraintDepth >::RebuildObjCExceptionDecl(), clang::TreeTransform< AdjustConstraintDepth >::RebuildObjCForCollectionStmt(), clang::TreeTransform< AdjustConstraintDepth >::RebuildObjCIsaExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildObjCIvarRefExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildObjCPropertyRefExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildObjCPropertyRefExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildObjCSubscriptRefExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOffsetOfExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPAffinityClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPAlignClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPAlignedClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPAllocateClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPAllocatorClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPArrayShapingExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPAtClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPBindClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPCanonicalLoop(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPCollapseClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPCopyinClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPCopyprivateClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPDefaultClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPDefaultmapClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPDependClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPDepobjClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPDestroyClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPDetachClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPDeviceClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPDistScheduleClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPDoacrossClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPExclusiveClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPExecutableDirective(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPFilterClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPFinalClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPFirstprivateClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPFlushClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPFromClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPFullClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPGrainsizeClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPHasDeviceAddrClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPHintClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPHoldsClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPIfClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPInclusiveClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPInformationalDirective(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPInitClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPInReductionClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPIsDevicePtrClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPIteratorExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPLastprivateClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPLinearClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPLoopRangeClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPMapClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPMessageClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPNocontextClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPNontemporalClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPNovariantsClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPNumTasksClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPNumTeamsClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPNumThreadsClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPOrderClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPOrderedClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPPartialClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPPermutationClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPPriorityClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPPrivateClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPProcBindClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPReductionClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPSafelenClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPScheduleClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPSeverityClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPSharedClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPSimdlenClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPSizesClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPTaskReductionClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPThreadLimitClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPToClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPUseClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPUseDeviceAddrClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPUseDevicePtrClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPUsesAllocatorsClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPXAttributeClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPXBareClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOMPXDynCGroupMemClause(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOpenACCAsteriskSizeExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOpenACCAtomicConstruct(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOpenACCCacheConstruct(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOpenACCCombinedConstruct(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOpenACCComputeConstruct(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOpenACCDataConstruct(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOpenACCEnterDataConstruct(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOpenACCExitDataConstruct(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOpenACCHostDataConstruct(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOpenACCInitConstruct(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOpenACCLoopConstruct(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOpenACCSetConstruct(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOpenACCShutdownConstruct(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOpenACCUpdateConstruct(), clang::TreeTransform< AdjustConstraintDepth >::RebuildOpenACCWaitConstruct(), clang::TreeTransform< AdjustConstraintDepth >::RebuildPackExpansion(), clang::TreeTransform< AdjustConstraintDepth >::RebuildPackExpansion(), clang::TreeTransform< AdjustConstraintDepth >::RebuildPackExpansionType(), clang::TreeTransform< AdjustConstraintDepth >::RebuildPackIndexingExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildParenExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildParenListExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildPredefinedExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildRecoveryExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildReturnStmt(), clang::TreeTransform< AdjustConstraintDepth >::RebuildSEHExceptStmt(), clang::TreeTransform< AdjustConstraintDepth >::RebuildSEHFinallyStmt(), clang::TreeTransform< AdjustConstraintDepth >::RebuildSEHTryStmt(), clang::TreeTransform< AdjustConstraintDepth >::RebuildSourceLocExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildStmtExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildSwitchStmtBody(), clang::TreeTransform< AdjustConstraintDepth >::RebuildSwitchStmtStart(), clang::TreeTransform< AdjustConstraintDepth >::RebuildSYCLUniqueStableNameExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildTemplateIdExpr(), RebuildTemplateName(), RebuildTemplateName(), clang::TreeTransform< AdjustConstraintDepth >::RebuildTemplateName(), clang::TreeTransform< AdjustConstraintDepth >::RebuildTypeTrait(), clang::TreeTransform< AdjustConstraintDepth >::RebuildUnaryExprOrTypeTrait(), clang::TreeTransform< AdjustConstraintDepth >::RebuildUnaryExprOrTypeTrait(), clang::TreeTransform< AdjustConstraintDepth >::RebuildUnaryOperator(), RebuildUnresolvedUsingType(), clang::TreeTransform< AdjustConstraintDepth >::RebuildVAArgExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildWhileStmt(), SkipLambdaBody(), TransformCondition(), TransformExceptionSpec(), TransformExprs(), TransformFunctionProtoType(), TransformFunctionTypeParams(), TransformInitializer(), TransformOMPExecutableDirective(), TransformOMPInformationalDirective(), clang::transformOMPMappableExprListClause(), TransformOverloadExprDecls(), TransformStmt(), TransformTemplateArgument(), TransformTemplateArguments(), TransformType(), and TransformTypeWithDeducedTST().
void clang::TreeTransform< Derived >::InventTemplateArgumentLoc | ( | const TemplateArgument & | Arg, |
TemplateArgumentLoc & | ArgLoc ) |
Fakes up a TemplateArgumentLoc for a given TemplateArgument.
Definition at line 4924 of file TreeTransform.h.
References getBaseLocation(), getDerived(), and getSema().
Referenced by ComputeSizeOfPackExprWithoutSubstitution().
|
inline |
Fakes up a TypeSourceInfo for a type.
Definition at line 715 of file TreeTransform.h.
Referenced by TransformTemplateArgument().
|
inlinestatic |
Definition at line 164 of file TreeTransform.h.
Referenced by clang::TreeTransform< AdjustConstraintDepth >::RebuildCXXCatchStmt(), and clang::TreeTransform< AdjustConstraintDepth >::RebuildObjCPropertyRefExpr().
|
inlinestatic |
Definition at line 165 of file TreeTransform.h.
bool clang::TreeTransform< Derived >::PreparePackForExpansion | ( | TemplateArgumentLoc | In, |
bool | Uneval, | ||
TemplateArgumentLoc & | Out, | ||
UnexpandedInfo & | Info ) |
Checks if the argument pack from In
will need to be expanded and does the necessary prework.
Whether the expansion is needed is captured in Info.Expand.
Out
will be a template pattern that would need to be expanded.Out
will be a pack that must be returned to the outputs directly.Definition at line 5187 of file TreeTransform.h.
References clang::TemplateArgument::containsUnexpandedParameterPack(), clang::UnexpandedInfo::Ellipsis, clang::UnexpandedInfo::Expand, clang::UnexpandedInfo::ExpandUnderForgetSubstitions, clang::TemplateArgumentLoc::getArgument(), getDerived(), getSema(), clang::TemplateArgument::isPackExpansion(), clang::UnexpandedInfo::NumExpansions, clang::UnexpandedInfo::OrigNumExpansions, clang::UnexpandedInfo::RetainExpansion, and TransformTemplateArgument().
|
inline |
Build a new address-of-label expression.
By default, performs semantic analysis, using the name of the label rather than attempting to map the label statement itself. Subclasses may override this routine to provide different behavior.
Definition at line 3134 of file TreeTransform.h.
|
inline |
Build a new array section expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 2835 of file TreeTransform.h.
|
inline |
Build a new array subscript expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 2811 of file TreeTransform.h.
QualType clang::TreeTransform< Derived >::RebuildArrayType | ( | QualType | ElementType, |
ArraySizeModifier | SizeMod, | ||
const llvm::APInt * | Size, | ||
Expr * | SizeExpr, | ||
unsigned | IndexTypeQuals, | ||
SourceRange | BracketsRange ) |
Build a new array type given the element type, size modifier, size of the array (if known), size expression, and index type qualifiers.
By default, performs semantic analysis when building the array type. Subclasses may override this routine to provide different behavior. Also by default, all of the other Rebuild*Array
Definition at line 17235 of file TreeTransform.h.
References clang::IntegerLiteral::Create(), getBaseEntity(), clang::SourceRange::getBegin(), getDerived(), SemaRef, and clang::T.
|
inline |
Build a new array type trait expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3513 of file TreeTransform.h.
|
inline |
Build a new atomic operation expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 4104 of file TreeTransform.h.
QualType clang::TreeTransform< Derived >::RebuildAtomicType | ( | QualType | ValueType, |
SourceLocation | KWLoc ) |
Build a new atomic type given its value type.
By default, performs semantic analysis when building the atomic type. Subclasses may override this routine to provide different behavior.
Definition at line 17470 of file TreeTransform.h.
References SemaRef.
|
inline |
Build a new attributed statement.
By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.
Definition at line 1403 of file TreeTransform.h.
|
inline |
Build a new C++11 auto type.
By default, builds a new AutoType with the given deduced type.
Definition at line 1129 of file TreeTransform.h.
|
inline |
Build a new binary operator expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 2988 of file TreeTransform.h.
QualType clang::TreeTransform< Derived >::RebuildBitIntType | ( | bool | IsUnsigned, |
unsigned | NumBits, | ||
SourceLocation | Loc ) |
Build a bit-precise int given its value type.
Definition at line 17484 of file TreeTransform.h.
References clang::IntegerLiteral::Create(), and SemaRef.
QualType clang::TreeTransform< Derived >::RebuildBlockPointerType | ( | QualType | PointeeType, |
SourceLocation | Sigil ) |
Build a new block pointer type given its pointee type.
By default, performs semantic analysis when building the block pointer type. Subclasses may override this routine to provide different behavior.
Definition at line 17174 of file TreeTransform.h.
References getBaseEntity(), getDerived(), SemaRef, and clang::Star.
|
inline |
Build a new C++ __builtin_bit_cast expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3359 of file TreeTransform.h.
|
inline |
Build a new call expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 2882 of file TreeTransform.h.
|
inline |
Definition at line 1093 of file TreeTransform.h.
|
inline |
Build a new case statement.
By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.
Definition at line 1361 of file TreeTransform.h.
|
inline |
Attach the body to a new case statement.
By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.
Definition at line 1374 of file TreeTransform.h.
|
inline |
Build a new __builtin_choose_expr expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3153 of file TreeTransform.h.
|
inline |
Build a new co_await expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 1560 of file TreeTransform.h.
|
inline |
Build a new compound literal expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3035 of file TreeTransform.h.
|
inline |
Build a new compound statement.
By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.
Definition at line 1349 of file TreeTransform.h.
|
inline |
Build a new Objective-C boxed expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3729 of file TreeTransform.h.
|
inline |
Build a new conditional operator expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3010 of file TreeTransform.h.
QualType clang::TreeTransform< Derived >::RebuildConstantArrayType | ( | QualType | ElementType, |
ArraySizeModifier | SizeMod, | ||
const llvm::APInt & | Size, | ||
Expr * | SizeExpr, | ||
unsigned | IndexTypeQuals, | ||
SourceRange | BracketsRange ) |
Build a new constant array type given the element type, size modifier, (known) size of the array, and index type qualifiers.
By default, performs semantic analysis when building the array type. Subclasses may override this routine to provide different behavior.
Definition at line 17266 of file TreeTransform.h.
References getDerived().
QualType clang::TreeTransform< Derived >::RebuildConstantMatrixType | ( | QualType | ElementType, |
unsigned | NumRows, | ||
unsigned | NumColumns ) |
Build a new matrix type given the element type and dimensions.
Definition at line 17342 of file TreeTransform.h.
References SemaRef.
|
inline |
Build a new convert vector expression.
Definition at line 3995 of file TreeTransform.h.
|
inline |
Build a new co_return statement.
By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.
Definition at line 1551 of file TreeTransform.h.
|
inline |
Definition at line 1602 of file TreeTransform.h.
|
inline |
Build a new co_yield expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 1598 of file TreeTransform.h.
|
inline |
Build a new C-style cast expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3023 of file TreeTransform.h.
|
inline |
Definition at line 3320 of file TreeTransform.h.
|
inline |
Build a new C++ catch statement.
By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.
Definition at line 2603 of file TreeTransform.h.
|
inline |
Build a new C++ const_cast expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3306 of file TreeTransform.h.
|
inline |
Build a new object-construction expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3572 of file TreeTransform.h.
|
inline |
Build a new C++ default-argument expression.
By default, builds a new default-argument expression, which does not require any semantic analysis. Subclasses may override this routine to provide different behavior.
Definition at line 3435 of file TreeTransform.h.
|
inline |
Build a new C++11 default-initialization expression.
By default, builds a new default field initialization expression, which does not require any semantic analysis. Subclasses may override this routine to provide different behavior.
Definition at line 3446 of file TreeTransform.h.
|
inline |
Build a new C++ "delete" expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3490 of file TreeTransform.h.
|
inline |
Build a new member reference expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3639 of file TreeTransform.h.
|
inline |
Build a new C++ dynamic_cast expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3272 of file TreeTransform.h.
|
inline |
Build a new C++1z fold-expression.
By default, performs semantic analysis in order to build a new fold expression.
Definition at line 4066 of file TreeTransform.h.
|
inline |
Build a new C++0x range-based for statement.
By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.
Definition at line 2623 of file TreeTransform.h.
|
inline |
Build a new C++ functional-style cast expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3333 of file TreeTransform.h.
|
inline |
Build a new implicit construction via inherited constructor expression.
Definition at line 3601 of file TreeTransform.h.
|
inline |
Build a new C++ "named" cast expression, such as static_cast or reinterpret_cast.
By default, this routine dispatches to one of the more-specific routines for a particular named case, e.g., RebuildCXXStaticCastExpr(). Subclasses may override this routine to provide different behavior.
Definition at line 3212 of file TreeTransform.h.
|
inline |
Build a new C++ "new" expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3466 of file TreeTransform.h.
|
inline |
Build a new noexcept expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3685 of file TreeTransform.h.
ExprResult clang::TreeTransform< Derived >::RebuildCXXOperatorCallExpr | ( | OverloadedOperatorKind | Op, |
SourceLocation | OpLoc, | ||
SourceLocation | CalleeLoc, | ||
bool | RequiresADL, | ||
const UnresolvedSetImpl & | Functions, | ||
Expr * | First, | ||
Expr * | Second ) |
Build a new overloaded operator call expression.
By default, performs semantic analysis to build the new expression. The semantic analysis provides the behavior of template instantiation, copying with transformations that turn what looks like an overloaded operator call into a use of a builtin operator, performing argument-dependent lookup, etc. Subclasses may override this routine to provide different behavior.
Definition at line 17542 of file TreeTransform.h.
References clang::ExprError(), clang::First, clang::Expr::getObjectKind(), clang::BinaryOperator::getOverloadedOpcode(), clang::UnaryOperator::getOverloadedOpcode(), getSema(), clang::Expr::getType(), clang::BinaryOperator::isAssignmentOp(), clang::Type::isOverloadableType(), clang::Expr::isTypeDependent(), clang::OK_ObjCProperty, clang::Result, and SemaRef.
|
inline |
Definition at line 3120 of file TreeTransform.h.
ExprResult clang::TreeTransform< Derived >::RebuildCXXPseudoDestructorExpr | ( | Expr * | Base, |
SourceLocation | OperatorLoc, | ||
bool | isArrow, | ||
CXXScopeSpec & | SS, | ||
TypeSourceInfo * | ScopeType, | ||
SourceLocation | CCLoc, | ||
SourceLocation | TildeLoc, | ||
PseudoDestructorTypeStorage | Destroyed ) |
Build a new pseudo-destructor expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 17626 of file TreeTransform.h.
References clang::cast(), clang::CXXScopeSpec::clear(), clang::ExprError(), clang::PseudoDestructorTypeStorage::getIdentifier(), clang::PseudoDestructorTypeStorage::getLocation(), getSema(), clang::TypeSourceInfo::getType(), clang::PseudoDestructorTypeStorage::getTypeSourceInfo(), clang::isa(), clang::CXXScopeSpec::Make(), SemaRef, and clang::DeclarationNameInfo::setNamedTypeInfo().
|
inline |
Build a new C++ reinterpret_cast expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3289 of file TreeTransform.h.
|
inline |
Build a new rewritten operator expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 2999 of file TreeTransform.h.
|
inline |
Build a new C++ zero-initialization expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3455 of file TreeTransform.h.
|
inline |
Build a new C++ static_cast expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3255 of file TreeTransform.h.
|
inline |
Definition at line 2890 of file TreeTransform.h.
|
inline |
Build a new object-construction expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3613 of file TreeTransform.h.
|
inline |
Build a new C++ "this" expression.
By default, performs semantic analysis to build a new "this" expression. Subclasses may override this routine to provide different behavior.
Definition at line 3413 of file TreeTransform.h.
|
inline |
Build a new C++ throw expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3425 of file TreeTransform.h.
|
inline |
Build a new C++ try statement.
By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.
Definition at line 2614 of file TreeTransform.h.
|
inline |
Build a new C++ typeid(expr) expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3382 of file TreeTransform.h.
|
inline |
Build a new C++ typeid(type) expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3369 of file TreeTransform.h.
|
inline |
Build a new object-construction expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3626 of file TreeTransform.h.
|
inline |
Build a new C++ __uuidof(expr) expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3404 of file TreeTransform.h.
|
inline |
Build a new C++ __uuidof(type) expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3394 of file TreeTransform.h.
|
inline |
Build a new expression that references a declaration.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 2713 of file TreeTransform.h.
|
inline |
Build a new expression that references a declaration.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 2724 of file TreeTransform.h.
|
inline |
Build a new declaration statement.
By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.
Definition at line 1508 of file TreeTransform.h.
QualType clang::TreeTransform< Derived >::RebuildDecltypeType | ( | Expr * | Underlying, |
SourceLocation | Loc ) |
Build a new C++11 decltype type.
By default, performs semantic analysis when building the decltype type. Subclasses may override this routine to provide different behavior.
Definition at line 17440 of file TreeTransform.h.
References SemaRef.
|
inline |
By default, builds a new DeducedTemplateSpecializationType with the given deduced type.
Definition at line 1143 of file TreeTransform.h.
|
inline |
Build a new default statement.
By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.
Definition at line 1383 of file TreeTransform.h.
QualType clang::TreeTransform< Derived >::RebuildDependentAddressSpaceType | ( | QualType | PointeeType, |
Expr * | AddrSpaceExpr, | ||
SourceLocation | AttributeLoc ) |
Build a new DependentAddressSpaceType or return the pointee type variable with the correct address space (retrieved from AddrSpaceExpr) applied to it.
The former will be returned in cases where the address space remains dependent.
By default, performs semantic analysis when building the type with address space applied. Subclasses may override this routine to provide different behavior.
Definition at line 17300 of file TreeTransform.h.
References SemaRef.
QualType clang::TreeTransform< Derived >::RebuildDependentBitIntType | ( | bool | IsUnsigned, |
Expr * | NumBitsExpr, | ||
SourceLocation | Loc ) |
Build a dependent bit-precise int given its value type.
Definition at line 17495 of file TreeTransform.h.
References SemaRef.
|
inline |
Build a new co_await expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 1588 of file TreeTransform.h.
|
inline |
Build a new typename type that refers to an identifier.
By default, performs semantic analysis when building the typename type (or elaborated type). Subclasses may override this routine to provide different behavior.
Definition at line 1172 of file TreeTransform.h.
|
inline |
Build a new (previously unresolved) declaration reference expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3537 of file TreeTransform.h.
QualType clang::TreeTransform< Derived >::RebuildDependentSizedArrayType | ( | QualType | ElementType, |
ArraySizeModifier | SizeMod, | ||
Expr * | SizeExpr, | ||
unsigned | IndexTypeQuals, | ||
SourceRange | BracketsRange ) |
Build a new dependent-sized array type given the element type, size modifier, size expression, and index type qualifiers.
By default, performs semantic analysis when building the array type. Subclasses may override this routine to provide different behavior.
Definition at line 17291 of file TreeTransform.h.
References getDerived().
QualType clang::TreeTransform< Derived >::RebuildDependentSizedExtVectorType | ( | QualType | ElementType, |
Expr * | SizeExpr, | ||
SourceLocation | AttributeLoc ) |
Build a new potentially dependently-sized extended vector type given the element type and number of elements.
By default, performs semantic analysis when building the vector type. Subclasses may override this routine to provide different behavior.
Definition at line 17335 of file TreeTransform.h.
References SemaRef.
QualType clang::TreeTransform< Derived >::RebuildDependentSizedMatrixType | ( | QualType | ElementType, |
Expr * | RowExpr, | ||
Expr * | ColumnExpr, | ||
SourceLocation | AttributeLoc ) |
Build a new matrix type given the type and dependently-defined dimensions.
Definition at line 17349 of file TreeTransform.h.
References SemaRef.
QualType clang::TreeTransform< Derived >::RebuildDependentVectorType | ( | QualType | ElementType, |
Expr * | SizeExpr, | ||
SourceLocation | AttributeLoc, | ||
VectorKind | VecKind ) |
Build a new potentially dependently-sized extended vector type given the element type and number of elements.
By default, performs semantic analysis when building the vector type. Subclasses may override this routine to provide different behavior.
Definition at line 17315 of file TreeTransform.h.
References SemaRef.
|
inline |
Build a new designated initializer expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3075 of file TreeTransform.h.
|
inline |
Build a new do-while statement.
By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.
Definition at line 1458 of file TreeTransform.h.
|
inline |
Build an empty C++1z fold-expression with the given operator.
By default, produces the fallback value for the fold-expression, or produce an error if there is no fallback value.
Definition at line 4095 of file TreeTransform.h.
|
inline |
Build a new C++ exception declaration.
By default, performs semantic analysis to build the new decaration. Subclasses may override this routine to provide different behavior.
Definition at line 2587 of file TreeTransform.h.
|
inline |
Build a new expression trait expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3525 of file TreeTransform.h.
|
inline |
Definition at line 3771 of file TreeTransform.h.
|
inline |
Definition at line 3780 of file TreeTransform.h.
|
inline |
Build a new extended vector element access expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3047 of file TreeTransform.h.
QualType clang::TreeTransform< Derived >::RebuildExtVectorType | ( | QualType | ElementType, |
unsigned | NumElements, | ||
SourceLocation | AttributeLoc ) |
Build a new extended vector type given the element type and number of elements.
By default, performs semantic analysis when building the vector type. Subclasses may override this routine to provide different behavior.
Definition at line 17322 of file TreeTransform.h.
References clang::IntegerLiteral::Create(), and SemaRef.
|
inline |
Build a new for statement.
By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.
Definition at line 1469 of file TreeTransform.h.
QualType clang::TreeTransform< Derived >::RebuildFunctionNoProtoType | ( | QualType | ResultType | ) |
Build a new unprototyped function type.
Definition at line 17367 of file TreeTransform.h.
QualType clang::TreeTransform< Derived >::RebuildFunctionProtoType | ( | QualType | T, |
MutableArrayRef< QualType > | ParamTypes, | ||
const FunctionProtoType::ExtProtoInfo & | EPI ) |
Build a new function type.
By default, performs semantic analysis when building the function type. Subclasses may override this routine to provide different behavior.
Definition at line 17357 of file TreeTransform.h.
References getBaseEntity(), getBaseLocation(), getDerived(), SemaRef, and clang::T.
|
inline |
Build a new inline asm statement.
By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.
Definition at line 1518 of file TreeTransform.h.
|
inline |
Build a new generic selection expression with an expression predicate.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3165 of file TreeTransform.h.
|
inline |
Build a new generic selection expression with a type predicate.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3180 of file TreeTransform.h.
|
inline |
Build a new goto statement.
By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.
Definition at line 1481 of file TreeTransform.h.
|
inline |
Build a new "if" statement.
By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.
Definition at line 1415 of file TreeTransform.h.
|
inline |
Build a new value-initialized expression.
By default, builds the implicit value initialization without performing any semantic analysis. Subclasses may override this routine to provide different behavior.
Definition at line 3094 of file TreeTransform.h.
QualType clang::TreeTransform< Derived >::RebuildIncompleteArrayType | ( | QualType | ElementType, |
ArraySizeModifier | SizeMod, | ||
unsigned | IndexTypeQuals, | ||
SourceRange | BracketsRange ) |
Build a new incomplete array type given the element type, size modifier, and index type qualifiers.
By default, performs semantic analysis when building the array type. Subclasses may override this routine to provide different behavior.
Definition at line 17274 of file TreeTransform.h.
References getDerived().
|
inline |
Build a new indirect goto statement.
By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.
Definition at line 1490 of file TreeTransform.h.
|
inline |
Build a new initializer list expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3065 of file TreeTransform.h.
|
inline |
Build a new label statement.
By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.
Definition at line 1394 of file TreeTransform.h.
|
inline |
Definition at line 4077 of file TreeTransform.h.
|
inline |
Build a new MacroDefined type.
Definition at line 1082 of file TreeTransform.h.
|
inline |
Build a new matrix subscript expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 2824 of file TreeTransform.h.
|
inline |
Build a new member access expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 2901 of file TreeTransform.h.
QualType clang::TreeTransform< Derived >::RebuildMemberPointerType | ( | QualType | PointeeType, |
const CXXScopeSpec & | SS, | ||
CXXRecordDecl * | Cls, | ||
SourceLocation | Sigil ) |
Build a new member pointer type given the pointee type and the qualifier it refers into.
By default, performs semantic analysis when building the member pointer type. Subclasses may override this routine to provide different behavior.
Definition at line 17190 of file TreeTransform.h.
References getBaseEntity(), getDerived(), and SemaRef.
|
inline |
Build a new MS style inline asm statement.
By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.
Definition at line 1534 of file TreeTransform.h.
|
inline |
Build a new C++0x range-based for statement.
By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.
Definition at line 2662 of file TreeTransform.h.
|
inline |
Definition at line 3793 of file TreeTransform.h.
|
inline |
Definition at line 3787 of file TreeTransform.h.
|
inline |
Build a new Objective-C array literal.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3809 of file TreeTransform.h.
|
inline |
Build a new Objective-C @catch statement.
By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.
Definition at line 1633 of file TreeTransform.h.
|
inline |
Build a new Objective-C @finally statement.
By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.
Definition at line 1644 of file TreeTransform.h.
|
inline |
Rebuild the operand to an Objective-C @synchronized statement.
By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.
Definition at line 2542 of file TreeTransform.h.
|
inline |
Build a new Objective-C @synchronized statement.
By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.
Definition at line 2551 of file TreeTransform.h.
|
inline |
Build a new Objective-C @throw statement.
By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.
Definition at line 1653 of file TreeTransform.h.
|
inline |
Build a new Objective-C @try statement.
By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.
Definition at line 1610 of file TreeTransform.h.
|
inline |
Build a new Objective-C @autoreleasepool statement.
By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.
Definition at line 2560 of file TreeTransform.h.
|
inline |
Build a new Objective-C boxed expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3801 of file TreeTransform.h.
|
inline |
Build a new Objective-C dictionary literal.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3827 of file TreeTransform.h.
|
inline |
Build a new Objective-C @encode expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3836 of file TreeTransform.h.
|
inline |
Rebuild an Objective-C exception declaration.
By default, performs semantic analysis to build the new declaration. Subclasses may override this routine to provide different behavior.
Definition at line 1622 of file TreeTransform.h.
|
inline |
Build a new Objective-C fast enumeration statement.
By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.
Definition at line 2569 of file TreeTransform.h.
|
inline |
Build a new Objective-C "isa" expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3948 of file TreeTransform.h.
|
inline |
Build a new Objective-C ivar reference expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3893 of file TreeTransform.h.
|
inline |
Build a new Objective-C instance message.
Definition at line 3858 of file TreeTransform.h.
|
inline |
Build a new Objective-C instance/class message to 'super'.
Definition at line 3872 of file TreeTransform.h.
|
inline |
Build a new Objective-C class message.
Definition at line 3844 of file TreeTransform.h.
QualType clang::TreeTransform< Derived >::RebuildObjCObjectPointerType | ( | QualType | PointeeType, |
SourceLocation | Star ) |
Build a new Objective-C object pointer type given the pointee type.
By default, directly builds the pointer type, with no additional semantic analysis.
Definition at line 17228 of file TreeTransform.h.
References SemaRef, and clang::Star.
QualType clang::TreeTransform< Derived >::RebuildObjCObjectType | ( | QualType | BaseType, |
SourceLocation | Loc, | ||
SourceLocation | TypeArgsLAngleLoc, | ||
ArrayRef< TypeSourceInfo * > | TypeArgs, | ||
SourceLocation | TypeArgsRAngleLoc, | ||
SourceLocation | ProtocolLAngleLoc, | ||
ArrayRef< ObjCProtocolDecl * > | Protocols, | ||
ArrayRef< SourceLocation > | ProtocolLocs, | ||
SourceLocation | ProtocolRAngleLoc ) |
Build an Objective-C object type.
By default, performs semantic analysis when building the object type. Subclasses may override this routine to provide different behavior.
Definition at line 17210 of file TreeTransform.h.
References SemaRef.
|
inline |
Build a new Objective-C property reference expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3932 of file TreeTransform.h.
|
inline |
Build a new Objective-C property reference expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3913 of file TreeTransform.h.
|
inline |
Definition at line 3815 of file TreeTransform.h.
QualType clang::TreeTransform< Derived >::RebuildObjCTypeParamType | ( | const ObjCTypeParamDecl * | Decl, |
SourceLocation | ProtocolLAngleLoc, | ||
ArrayRef< ObjCProtocolDecl * > | Protocols, | ||
ArrayRef< SourceLocation > | ProtocolLocs, | ||
SourceLocation | ProtocolRAngleLoc ) |
Definition at line 17198 of file TreeTransform.h.
References SemaRef.
|
inline |
Build a new builtin offsetof expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 2771 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'affinity' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 2334 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'align' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 2474 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'aligned' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 1986 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'allocate' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 2091 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'allocator' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 1798 of file TreeTransform.h.
|
inline |
Build a new array shaping expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 2858 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'at' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 2485 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'bind' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 2429 of file TreeTransform.h.
|
inline |
Build a new OpenMP Canonical loop.
Ensures that the outermost loop in LoopStmt
is wrapped by a OMPCanonicalLoop.
Definition at line 1662 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'collapse' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 1809 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'copyin' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 1999 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'copyprivate' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 2011 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'default' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 1820 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'defaultmap' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 2272 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'depend' pseudo clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 2046 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'depobj' pseudo clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 2035 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'destroy' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 2383 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'detach' clause.
By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.
Definition at line 2180 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'device' clause.
By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.
Definition at line 2059 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'dist_schedule' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 2192 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'doacross' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 2522 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'exclusive' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 2311 of file TreeTransform.h.
|
inline |
Build a new OpenMP executable directive.
By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.
Definition at line 1670 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'filter' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 2418 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'final' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 1712 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'firstprivate' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 1884 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'flush' pseudo clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 2023 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'from' clause.
By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.
Definition at line 2221 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'full' clause.
Definition at line 1773 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'grainsize' clause.
By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.
Definition at line 2143 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'has_device_addr' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 2263 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'hint' clause.
By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.
Definition at line 2169 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'holds' clause.
Definition at line 2531 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'if' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 1697 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'inclusive' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 2299 of file TreeTransform.h.
|
inline |
Build a new OpenMP informational directive.
Definition at line 1682 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'init' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 2359 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'in_reduction' clause.
By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.
Definition at line 1957 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'is_device_ptr' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 2254 of file TreeTransform.h.
|
inline |
Build a new iterator expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 2871 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'lastprivate' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 1896 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'linear' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 1972 of file TreeTransform.h.
|
inline |
Definition at line 1787 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'map' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 2072 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'message' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 2510 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'nocontext' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 2407 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'nontemporal' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 2287 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'novariants' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 2395 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'num_tasks' clause.
By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.
Definition at line 2156 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'num_teams' clause.
By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.
Definition at line 2108 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'num_threads' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 1723 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'order' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 2347 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'ordered' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 1861 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'partial' clause.
Definition at line 1779 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'permutation' clause.
Definition at line 1764 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'priority' clause.
By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.
Definition at line 2132 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'private' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 1872 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'proc_bind' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 1834 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'reduction' clause.
By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.
Definition at line 1923 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'safelen' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 1737 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'schedule' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 1847 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'severity' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 2497 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'shared' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 1911 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'simdlen' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 1748 of file TreeTransform.h.
|
inline |
Definition at line 1755 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'task_reduction' clause.
By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.
Definition at line 1941 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'thread_limit' clause.
By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.
Definition at line 2120 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'to' clause.
By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.
Definition at line 2205 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'use' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 2372 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'use_device_addr' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 2245 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'use_device_ptr' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 2236 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'uses_allocators' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 2323 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'ompx_attribute' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 2453 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'ompx_bare' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 2465 of file TreeTransform.h.
|
inline |
Build a new OpenMP 'ompx_dyn_cgroup_mem' clause.
By default, performs semantic analysis to build the new OpenMP clause. Subclasses may override this routine to provide different behavior.
Definition at line 2442 of file TreeTransform.h.
|
inline |
Definition at line 4268 of file TreeTransform.h.
|
inline |
Definition at line 4256 of file TreeTransform.h.
|
inline |
Definition at line 4247 of file TreeTransform.h.
|
inline |
Definition at line 4141 of file TreeTransform.h.
|
inline |
Definition at line 4119 of file TreeTransform.h.
|
inline |
Definition at line 4152 of file TreeTransform.h.
|
inline |
Definition at line 4164 of file TreeTransform.h.
|
inline |
Definition at line 4174 of file TreeTransform.h.
|
inline |
Definition at line 4183 of file TreeTransform.h.
|
inline |
Definition at line 4194 of file TreeTransform.h.
|
inline |
Definition at line 4130 of file TreeTransform.h.
|
inline |
Definition at line 4214 of file TreeTransform.h.
|
inline |
Definition at line 4205 of file TreeTransform.h.
|
inline |
Definition at line 4224 of file TreeTransform.h.
|
inline |
Definition at line 4234 of file TreeTransform.h.
|
inline |
Build a new expression pack expansion.
By default, performs semantic analysis to build a new pack expansion for an expression. Subclasses may override this routine to provide different behavior.
Definition at line 4057 of file TreeTransform.h.
|
inline |
Build a new template argument pack expansion.
By default, performs semantic analysis to build a new pack expansion for a template argument. Subclasses may override this routine to provide different behavior.
Definition at line 4006 of file TreeTransform.h.
|
inline |
Build a new pack expansion type.
By default, builds a new PackExpansionType type from the given pattern. Subclasses may override this routine to provide different behavior.
Definition at line 1265 of file TreeTransform.h.
Referenced by TransformFunctionTypeParam().
|
inline |
Definition at line 3702 of file TreeTransform.h.
QualType clang::TreeTransform< Derived >::RebuildPackIndexingType | ( | QualType | Pattern, |
Expr * | IndexExpr, | ||
SourceLocation | Loc, | ||
SourceLocation | EllipsisLoc, | ||
bool | FullySubstituted, | ||
ArrayRef< QualType > | Expansions = {} ) |
Definition at line 17445 of file TreeTransform.h.
References SemaRef.
|
inline |
Build a new expression in parentheses.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 2739 of file TreeTransform.h.
|
inline |
Build a new expression list in parentheses.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3114 of file TreeTransform.h.
|
inline |
Build a new parenthesized type.
By default, builds a new ParenType type from the inner type. Subclasses may override this routine to provide different behavior.
Definition at line 1163 of file TreeTransform.h.
QualType clang::TreeTransform< Derived >::RebuildPipeType | ( | QualType | ValueType, |
SourceLocation | KWLoc, | ||
bool | isReadPipe ) |
Build a new pipe type given its value type.
Definition at line 17476 of file TreeTransform.h.
References SemaRef.
QualType clang::TreeTransform< Derived >::RebuildPointerType | ( | QualType | PointeeType, |
SourceLocation | Sigil ) |
Build a new pointer type given its pointee type.
By default, performs semantic analysis when building the pointer type. Subclasses may override this routine to provide different behavior.
Definition at line 17167 of file TreeTransform.h.
References getBaseEntity(), getDerived(), SemaRef, and clang::Star.
|
inline |
Build a new predefined expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 2705 of file TreeTransform.h.
QualType clang::TreeTransform< Derived >::RebuildQualifiedType | ( | QualType | T, |
QualifiedTypeLoc | TL ) |
Build a new qualified type given its unqualified type and type location.
By default, this routine adds type qualifiers only to types that can have qualifiers, and silently suppresses those qualifiers that are not permitted. Subclasses may override this routine to provide different behavior.
Definition at line 5436 of file TreeTransform.h.
References clang::Default, clang::Qualifiers::fromCVRMask(), clang::Qualifiers::getAddressSpace(), clang::TypeLoc::getBeginLoc(), clang::QualType::getLocalQualifiers(), clang::Qualifiers::getPointerAuth(), clang::QualType::getQualifiers(), clang::TypeLoc::getType(), clang::QualType::getUnqualifiedType(), clang::Qualifiers::hasObjCLifetime(), clang::Qualifiers::hasRestrict(), clang::Type::isDependentType(), clang::PointerAuthQualifier::isPresent(), clang::Qualifiers::removeObjCLifetime(), clang::Qualifiers::Restrict, SemaRef, and clang::T.
|
inline |
Definition at line 4114 of file TreeTransform.h.
QualType clang::TreeTransform< Derived >::RebuildReferenceType | ( | QualType | ReferentType, |
bool | LValue, | ||
SourceLocation | Sigil ) |
Build a new reference type given the type it references.
By default, performs semantic analysis when building the reference type. Subclasses may override this routine to provide different behavior.
LValue | whether the type was written with an lvalue sigil or an rvalue sigil. |
Definition at line 17182 of file TreeTransform.h.
References getBaseEntity(), getDerived(), and SemaRef.
|
inline |
Build a new requires expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3748 of file TreeTransform.h.
|
inline |
Build a new return statement.
By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.
Definition at line 1500 of file TreeTransform.h.
|
inline |
Definition at line 2684 of file TreeTransform.h.
|
inline |
Definition at line 2689 of file TreeTransform.h.
|
inline |
Definition at line 2679 of file TreeTransform.h.
|
inline |
Build a new shuffle vector expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3965 of file TreeTransform.h.
|
inline |
Build a new expression to compute the length of a parameter pack.
Definition at line 3693 of file TreeTransform.h.
|
inline |
Build a new expression representing a call to a source location builtin.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3717 of file TreeTransform.h.
|
inline |
Build a new GNU statement expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3143 of file TreeTransform.h.
|
inline |
Attach the body to the switch statement.
By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.
Definition at line 1439 of file TreeTransform.h.
|
inline |
Start building a new switch statement.
By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.
Definition at line 1427 of file TreeTransform.h.
|
inline |
Definition at line 2693 of file TreeTransform.h.
|
inline |
Build a new class/struct/union/enum type.
Definition at line 1088 of file TreeTransform.h.
|
inline |
Build a new template-id expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3559 of file TreeTransform.h.
|
inline |
Build a new template name given a template template parameter pack and the.
By default, performs semantic analysis to determine whether the name can be resolved to a specific template, then builds the appropriate kind of template name. Subclasses may override this routine to provide different behavior.
Definition at line 1338 of file TreeTransform.h.
TemplateName clang::TreeTransform< Derived >::RebuildTemplateName | ( | CXXScopeSpec & | SS, |
bool | TemplateKW, | ||
TemplateName | Name ) |
Build a new template name given a nested name specifier, a flag indicating whether the "template" keyword was provided, and the template that the template name refers to.
By default, builds the new template name directly. Subclasses may override this routine to provide different behavior.
Definition at line 17501 of file TreeTransform.h.
References clang::CXXScopeSpec::getScopeRep(), and SemaRef.
TemplateName clang::TreeTransform< Derived >::RebuildTemplateName | ( | CXXScopeSpec & | SS, |
SourceLocation | TemplateKWLoc, | ||
const IdentifierInfo & | Name, | ||
SourceLocation | NameLoc, | ||
QualType | ObjectType, | ||
bool | AllowInjectedClassName ) |
Build a new template name given a nested name specifier and the name that is referred to as a template.
By default, performs semantic analysis to determine whether the name can be resolved to a specific template, then builds the appropriate kind of template name. Subclasses may override this routine to provide different behavior.
Definition at line 17509 of file TreeTransform.h.
References getSema(), clang::OpaquePtr< QualType >::make(), and clang::Template.
TemplateName clang::TreeTransform< Derived >::RebuildTemplateName | ( | CXXScopeSpec & | SS, |
SourceLocation | TemplateKWLoc, | ||
IdentifierOrOverloadedOperator | IO, | ||
SourceLocation | NameLoc, | ||
QualType | ObjectType, | ||
bool | AllowInjectedClassName ) |
Definition at line 4794 of file TreeTransform.h.
References getDerived(), clang::IdentifierOrOverloadedOperator::getIdentifier(), and clang::IdentifierOrOverloadedOperator::getOperator().
TemplateName clang::TreeTransform< Derived >::RebuildTemplateName | ( | CXXScopeSpec & | SS, |
SourceLocation | TemplateKWLoc, | ||
OverloadedOperatorKind | Operator, | ||
SourceLocation | NameLoc, | ||
QualType | ObjectType, | ||
bool | AllowInjectedClassName ) |
Build a new template name given a nested name specifier and the overloaded operator name that is referred to as a template.
By default, performs semantic analysis to determine whether the name can be resolved to a specific template, then builds the appropriate kind of template name. Subclasses may override this routine to provide different behavior.
Definition at line 17524 of file TreeTransform.h.
References getSema(), clang::OpaquePtr< QualType >::make(), clang::UnqualifiedId::setOperatorFunctionId(), and clang::Template.
QualType clang::TreeTransform< Derived >::RebuildTemplateSpecializationType | ( | ElaboratedTypeKeyword | Keyword, |
TemplateName | Template, | ||
SourceLocation | TemplateLoc, | ||
TemplateArgumentListInfo & | Args ) |
Build a new template specialization type.
By default, performs semantic analysis when building the template specialization type. Subclasses may override this routine to provide different behavior.
Definition at line 17461 of file TreeTransform.h.
References clang::Keyword, SemaRef, and clang::Template.
|
inline |
Build a new typedef type.
Definition at line 1075 of file TreeTransform.h.
QualType clang::TreeTransform< Derived >::RebuildTypeOfExprType | ( | Expr * | Underlying, |
SourceLocation | Loc, | ||
TypeOfKind | Kind ) |
Build a new typeof(expr) type.
By default, performs semantic analysis when building the typeof type. Subclasses may override this routine to provide different behavior.
Definition at line 17428 of file TreeTransform.h.
References SemaRef.
QualType clang::TreeTransform< Derived >::RebuildTypeOfType | ( | QualType | Underlying, |
TypeOfKind | Kind ) |
Build a new typeof(type) type.
By default, builds a new TypeOfType with the given underlying type.
Definition at line 17434 of file TreeTransform.h.
References SemaRef.
|
inline |
Definition at line 3761 of file TreeTransform.h.
|
inline |
Definition at line 3766 of file TreeTransform.h.
|
inline |
Build a new type trait expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3502 of file TreeTransform.h.
|
inline |
Build a new sizeof, alignof or vec step expression with an expression argument.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 2796 of file TreeTransform.h.
|
inline |
Build a new sizeof, alignof or vec_step expression with a type argument.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 2784 of file TreeTransform.h.
|
inline |
Build a new unary operator expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 2761 of file TreeTransform.h.
QualType clang::TreeTransform< Derived >::RebuildUnaryTransformType | ( | QualType | BaseType, |
UnaryTransformType::UTTKind | UKind, | ||
SourceLocation | Loc ) |
Build a new unary transform type.
Definition at line 17454 of file TreeTransform.h.
References SemaRef.
|
inline |
Build a new member reference expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3663 of file TreeTransform.h.
QualType clang::TreeTransform< Derived >::RebuildUnresolvedUsingType | ( | ElaboratedTypeKeyword | Keyword, |
NestedNameSpecifier | Qualifier, | ||
SourceLocation | NameLoc, | ||
Decl * | D ) |
Rebuild an unresolved typename type, given the decl that the UnresolvedUsingTypenameDecl was transformed to.
Definition at line 17372 of file TreeTransform.h.
References clang::cast(), clang::Type::getAs(), getSema(), clang::UsingShadowDecl::getTargetDecl(), clang::isa(), clang::Decl::isInvalidDecl(), clang::QualType::isNull(), clang::Keyword, RebuildUnresolvedUsingType(), SemaRef, and clang::T.
Referenced by RebuildUnresolvedUsingType().
|
inline |
Build a new type found via an alias.
Definition at line 1068 of file TreeTransform.h.
|
inline |
Build a new va_arg
expression.
By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.
Definition at line 3102 of file TreeTransform.h.
QualType clang::TreeTransform< Derived >::RebuildVariableArrayType | ( | QualType | ElementType, |
ArraySizeModifier | SizeMod, | ||
Expr * | SizeExpr, | ||
unsigned | IndexTypeQuals, | ||
SourceRange | BracketsRange ) |
Build a new variable-length array type given the element type, size modifier, size expression, and index type qualifiers.
By default, performs semantic analysis when building the array type. Subclasses may override this routine to provide different behavior.
Definition at line 17282 of file TreeTransform.h.
References getDerived().
QualType clang::TreeTransform< Derived >::RebuildVectorType | ( | QualType | ElementType, |
unsigned | NumElements, | ||
VectorKind | VecKind ) |
Build a new vector type given the element type and number of elements.
By default, performs semantic analysis when building the vector type. Subclasses may override this routine to provide different behavior.
Definition at line 17307 of file TreeTransform.h.
References SemaRef.
|
inline |
Build a new while statement.
By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.
Definition at line 1448 of file TreeTransform.h.
|
inline |
"Remember" the partially-substituted pack template argument after performing an instantiation that must preserve the parameter pack use.
This routine is meant to be overridden by the template instantiator.
Definition at line 328 of file TreeTransform.h.
|
inline |
Definition at line 335 of file TreeTransform.h.
|
inline |
Whether the transformation is forming an expression or statement that replaces the original.
In this case, we'll reuse mangling numbers from existing lambdas.
Definition at line 185 of file TreeTransform.h.
|
inline |
Sets the "base" location and entity when that information is known based on another transformation.
By default, the source location and entity are ignored. Subclasses can override this function to provide a customized implementation.
Definition at line 214 of file TreeTransform.h.
StmtResult clang::TreeTransform< Derived >::SkipLambdaBody | ( | LambdaExpr * | E, |
Stmt * | Body ) |
Alternative implementation of TransformLambdaBody that skips transforming the body.
Definition at line 15833 of file TreeTransform.h.
References clang::C, clang::LambdaExpr::capture_begin(), clang::LambdaExpr::capture_end(), getDerived(), getSema(), clang::LambdaExpr::isInitCapture(), clang::Decl::isInvalidDecl(), clang::LCK_StarThis, clang::StmtError(), and TransformDecl().
ExprResult clang::TreeTransform< Derived >::TransformAddressOfOperand | ( | Expr * | E | ) |
The operand of a unary address-of operator has special rules: it's allowed to refer to a non-static member of a class even if there's no 'this' object available.
Definition at line 13053 of file TreeTransform.h.
References getDerived().
const Attr * clang::TreeTransform< Derived >::TransformAttr | ( | const Attr * | S | ) |
Transform the given attribute.
By default, this routine transforms a statement by delegating to the appropriate TransformXXXAttr function to transform a specific kind of attribute. Subclasses may override this function to transform attributed statements/types using some other mechanism.
Definition at line 8141 of file TreeTransform.h.
References clang::Attr::getKind().
Referenced by TransformStmtAttr().
|
inline |
Transform the attributes associated with the given declaration and place them on the new declaration.
By default, this operation does nothing. Subclasses may override this behavior to transform attributes.
Definition at line 538 of file TreeTransform.h.
StmtResult clang::TreeTransform< Derived >::TransformCompoundStmt | ( | CompoundStmt * | S, |
bool | IsStmtExpr ) |
Definition at line 8010 of file TreeTransform.h.
References getDerived().
Sema::ConditionResult clang::TreeTransform< Derived >::TransformCondition | ( | SourceLocation | Loc, |
VarDecl * | Var, | ||
Expr * | Expr, | ||
Sema::ConditionKind | Kind ) |
Transform the specified condition.
By default, this transforms the variable and expression and rebuilds the condition.
Definition at line 4583 of file TreeTransform.h.
References clang::Sema::ConditionError(), clang::Sema::ConstantEvaluated, clang::Sema::ConstexprIf, clang::Sema::ExpressionEvaluationContextRecord::EK_Other, clang::ActionResult< PtrTy, Compress >::get(), getDerived(), clang::Decl::getLocation(), getSema(), clang::ActionResult< PtrTy, Compress >::isInvalid(), SemaRef, and TransformDefinition().
ExprResult clang::TreeTransform< Derived >::TransformCXXNamedCastExpr | ( | CXXNamedCastExpr * | E | ) |
Definition at line 14206 of file TreeTransform.h.
References AlwaysRebuild(), clang::ExprError(), clang::ActionResult< PtrTy, Compress >::get(), clang::CXXNamedCastExpr::getAngleBrackets(), clang::SourceRange::getBegin(), getDerived(), clang::SourceRange::getEnd(), clang::CXXNamedCastExpr::getOperatorLoc(), clang::CXXNamedCastExpr::getRParenLoc(), clang::Stmt::getStmtClass(), clang::CastExpr::getSubExpr(), clang::CastExpr::getSubExprAsWritten(), clang::ExplicitCastExpr::getTypeInfoAsWritten(), and clang::ActionResult< PtrTy, Compress >::isInvalid().
|
inline |
Transform the given declaration, which is referenced from a type or expression.
By default, acts as the identity function on declarations, unless the transformer has had to transform the declaration itself. Subclasses may override this function to provide alternate behavior.
Definition at line 516 of file TreeTransform.h.
Referenced by SkipLambdaBody(), TransformDeclarationNameInfo(), clang::TreeTransform< AdjustConstraintDepth >::TransformFirstQualifierInScope(), TransformNestedNameSpecifierLoc(), TransformTagType(), TransformTemplateArgument(), and TransformTemplateName().
DeclarationNameInfo clang::TreeTransform< Derived >::TransformDeclarationNameInfo | ( | const DeclarationNameInfo & | NameInfo | ) |
Transform the given declaration name.
By default, transforms the types of conversion function, constructor, and destructor names and then (if needed) rebuilds the declaration name. Identifiers and selectors are returned unmodified. Subclasses may override this function to provide alternate behavior.
Definition at line 4732 of file TreeTransform.h.
References clang::DeclarationName::CXXConstructorName, clang::DeclarationName::CXXConversionFunctionName, clang::DeclarationName::CXXDeductionGuideName, clang::DeclarationName::CXXDestructorName, clang::DeclarationName::CXXLiteralOperatorName, clang::DeclarationName::CXXOperatorName, clang::DeclarationName::CXXUsingDirective, clang::DeclarationName::getCXXDeductionGuideTemplate(), clang::DeclarationName::getCXXNameType(), getDerived(), clang::DeclarationNameInfo::getLoc(), clang::DeclarationNameInfo::getName(), clang::DeclarationNameInfo::getNamedTypeInfo(), clang::DeclarationName::getNameKind(), clang::TypeSourceInfo::getType(), clang::DeclarationName::Identifier, clang::QualType::isNull(), clang::DeclarationName::ObjCMultiArgSelector, clang::DeclarationName::ObjCOneArgSelector, clang::DeclarationName::ObjCZeroArgSelector, SemaRef, clang::DeclarationNameInfo::setName(), clang::DeclarationNameInfo::setNamedTypeInfo(), and TransformDecl().
|
inline |
Transform the definition of the given declaration.
By default, invokes TransformDecl() to transform the declaration. Subclasses may override this function to provide alternate behavior.
Definition at line 557 of file TreeTransform.h.
Referenced by TransformCondition().
ExprResult clang::TreeTransform< Derived >::TransformDependentScopeDeclRefExpr | ( | DependentScopeDeclRefExpr * | E, |
bool | IsAddressOfOperand, | ||
TypeSourceInfo ** | RecoveryTSI ) |
Definition at line 15225 of file TreeTransform.h.
References TransformDependentScopeDeclRefExpr().
Referenced by TransformDependentScopeDeclRefExpr().
|
inline |
Note that a local declaration has been transformed by this transformer.
Local declarations are typically transformed via a call to TransformDefinition. However, in some cases (e.g., lambda expressions), the transformer itself has to transform the declarations. This routine can be overridden by a subclass that keeps track of such mappings.
Definition at line 547 of file TreeTransform.h.
Referenced by TransformFunctionTypeParam().
bool clang::TreeTransform< Derived >::TransformExceptionSpec | ( | SourceLocation | Loc, |
FunctionProtoType::ExceptionSpecInfo & | ESI, | ||
SmallVectorImpl< QualType > & | Exceptions, | ||
bool & | Changed ) |
Definition at line 6644 of file TreeTransform.h.
References clang::Sema::ConstantEvaluated, clang::EST_Dynamic, clang::EST_DynamicNone, clang::EST_Unevaluated, clang::EST_Uninstantiated, clang::FunctionProtoType::ExceptionSpecInfo::Exceptions, clang::ActionResult< PtrTy, Compress >::get(), getDerived(), getSema(), clang::isComputedNoexcept(), clang::ActionResult< PtrTy, Compress >::isInvalid(), clang::Method, clang::FunctionProtoType::ExceptionSpecInfo::NoexceptExpr, SemaRef, clang::FunctionProtoType::ExceptionSpecInfo::SourceTemplate, clang::T, TryExpandParameterPacks(), clang::FunctionProtoType::ExceptionSpecInfo::Type, and clang::Unevaluated.
Referenced by TransformFunctionProtoType().
ExprResult clang::TreeTransform< Derived >::TransformExpr | ( | Expr * | E | ) |
Transform the given expression.
By default, this routine transforms an expression by delegating to the appropriate TransformXXXExpr function to build a new expression. Subclasses may override this function to transform expressions using some other mechanism.
Definition at line 4363 of file TreeTransform.h.
References clang::Stmt::getStmtClass(), and clang::Stmt::NoStmtClass.
concepts::ExprRequirement * clang::TreeTransform< Derived >::TransformExprRequirement | ( | concepts::ExprRequirement * | Req | ) |
Definition at line 15108 of file TreeTransform.h.
References clang::cast(), clang::ActionResult< PtrTy, Compress >::get(), getDerived(), clang::concepts::ExprRequirement::getExpr(), clang::concepts::ExprRequirement::getExprSubstitutionDiagnostic(), clang::concepts::ExprRequirement::getNoexceptLoc(), clang::concepts::ExprRequirement::getReturnTypeRequirement(), clang::Expr::hasPlaceholderType(), clang::concepts::ExprRequirement::isExprSubstitutionFailure(), clang::ActionResult< PtrTy, Compress >::isInvalid(), clang::concepts::ExprRequirement::isSimple(), clang::ActionResult< PtrTy, Compress >::isUsable(), and SemaRef.
bool clang::TreeTransform< Derived >::TransformExprs | ( | Expr *const * | Inputs, |
unsigned | NumInputs, | ||
bool | IsCall, | ||
SmallVectorImpl< Expr * > & | Outputs, | ||
bool * | ArgChanged = nullptr ) |
Transform the given list of expressions.
This routine transforms a list of expressions by invoking TransformExpr()
for each subexpression. However, it also provides support for variadic templates by expanding any pack expansions (if the derived class permits such expansion) along the way. When pack expansions are present, the number of outputs may not equal the number of inputs.
Inputs | The set of expressions to be transformed. |
NumInputs | The number of expressions in Inputs . |
IsCall | If true , then this transform is being performed on function-call arguments, and any arguments that should be dropped, will be. |
Outputs | The transformed input expressions will be added to this vector. |
ArgChanged | If non-NULL, will be set true if any argument changed due to transformation. |
Definition at line 4471 of file TreeTransform.h.
References DropCallArgument(), clang::ActionResult< PtrTy, Compress >::get(), getDerived(), getSema(), clang::Stmt::getSourceRange(), clang::ActionResult< PtrTy, Compress >::isInvalid(), clang::Result, and TryExpandParameterPacks().
Referenced by TransformInitializer().
|
inline |
Transform the given declaration, which was the first part of a nested-name-specifier in a member access expression.
This specific declaration transformation only applies to the first identifier in a nested-name-specifier of a member access expression, e.g., the T
in x->T::member
By default, invokes TransformDecl() to transform the declaration. Subclasses may override this function to provide alternate behavior.
Definition at line 570 of file TreeTransform.h.
QualType clang::TreeTransform< Derived >::TransformFunctionProtoType | ( | TypeLocBuilder & | TLB, |
FunctionProtoTypeLoc | TL ) |
Definition at line 6487 of file TreeTransform.h.
QualType clang::TreeTransform< Derived >::TransformFunctionProtoType | ( | TypeLocBuilder & | TLB, |
FunctionProtoTypeLoc | TL, | ||
CXXRecordDecl * | ThisContext, | ||
Qualifiers | ThisTypeQuals, | ||
Fn | TransformExceptionSpec ) |
Definition at line 6499 of file TreeTransform.h.
References AlwaysRebuild(), clang::FunctionEffectWithCondition::Cond, clang::FunctionEffectsRef::conditions(), clang::Sema::ConstantEvaluated, clang::Dependent, clang::FunctionEffectWithCondition::Effect, clang::FunctionProtoType::ExtProtoInfo::ExceptionSpec, clang::FunctionProtoType::ExtProtoInfo::ExtParameterInfos, clang::False, clang::FunctionProtoType::ExtProtoInfo::FunctionEffects, clang::ActionResult< PtrTy, Compress >::get(), clang::TypeLoc::getBeginLoc(), clang::EffectConditionExpr::getCondition(), getDerived(), clang::FunctionTypeLoc::getExceptionSpecRange(), clang::FunctionTypeLoc::getLocalRangeBegin(), clang::FunctionTypeLoc::getLocalRangeEnd(), clang::FunctionTypeLoc::getLParenLoc(), clang::FunctionTypeLoc::getNumParams(), clang::FunctionTypeLoc::getParams(), clang::Sema::ExtParameterInfoBuilder::getPointerOrNull(), clang::FunctionTypeLoc::getReturnLoc(), clang::FunctionTypeLoc::getRParenLoc(), getSema(), clang::TypeLoc::getType(), clang::InheritingConcreteTypeLoc< Base, Derived, TypeClass >::getTypePtr(), clang::ActionResult< PtrTy, Compress >::isInvalid(), clang::QualType::isNull(), clang::FunctionEffect::name(), clang::None, clang::FunctionEffect::oppositeKind(), clang::FunctionProtoType::param_type_begin(), clang::TypeLocBuilder::push(), clang::Result, SemaRef, clang::FunctionTypeLoc::setExceptionSpecRange(), clang::FunctionTypeLoc::setLocalRangeBegin(), clang::FunctionTypeLoc::setLocalRangeEnd(), clang::FunctionTypeLoc::setLParenLoc(), clang::FunctionTypeLoc::setParam(), clang::FunctionTypeLoc::setRParenLoc(), clang::T, TransformExceptionSpec(), TransformFunctionTypeParams(), clang::True, and clang::Unevaluated.
ParmVarDecl * clang::TreeTransform< Derived >::TransformFunctionTypeParam | ( | ParmVarDecl * | OldParm, |
int | indexAdjustment, | ||
UnsignedOrNone | NumExpansions, | ||
bool | ExpectParameterPack ) |
Transforms a single function-type parameter.
Return null on error.
indexAdjustment | - A number to add to the parameter's scope index; can be negative |
Definition at line 6199 of file TreeTransform.h.
References clang::TypeLoc::castAs(), clang::ParmVarDecl::Create(), clang::Decl::getDeclContext(), getDerived(), clang::PackExpansionTypeLoc::getEllipsisLoc(), clang::TypeLoc::getFullDataSize(), clang::ParmVarDecl::getFunctionScopeDepth(), clang::ParmVarDecl::getFunctionScopeIndex(), clang::NamedDecl::getIdentifier(), clang::DeclaratorDecl::getInnerLocStart(), clang::Decl::getLocation(), clang::PackExpansionTypeLoc::getPatternLoc(), clang::TypeLoc::getSourceRange(), clang::VarDecl::getStorageClass(), clang::TypeSourceInfo::getType(), clang::TypeSourceInfo::getTypeLoc(), clang::DeclaratorDecl::getTypeSourceInfo(), clang::isa(), RebuildPackExpansionType(), clang::Result, SemaRef, clang::PackExpansionTypeLoc::setEllipsisLoc(), clang::ParmVarDecl::setScopeInfo(), and transformedLocalDecl().
|
inline |
Definition at line 773 of file TreeTransform.h.
bool clang::TreeTransform< Derived >::TransformFunctionTypeParams | ( | SourceLocation | Loc, |
ArrayRef< ParmVarDecl * > | Params, | ||
const QualType * | ParamTypes, | ||
const FunctionProtoType::ExtParameterInfo * | ParamInfos, | ||
SmallVectorImpl< QualType > & | PTypes, | ||
SmallVectorImpl< ParmVarDecl * > * | PVars, | ||
Sema::ExtParameterInfoBuilder & | PInfos, | ||
unsigned * | LastParamTransformed ) |
Transforms the parameters of a function type into the given vectors.
The result vectors should be kept in sync; null entries in the variables vector are acceptable.
LastParamTransformed, if non-null, will be set to the index of the last parameter on which transformation was started. In the event of an error, this will contain the parameter which failed to instantiate.
Return true on error.
Definition at line 6255 of file TreeTransform.h.
References clang::TypeLoc::castAs(), clang::Type::containsUnexpandedParameterPack(), getDerived(), clang::PackExpansionTypeLoc::getEllipsisLoc(), clang::PackExpansionTypeLoc::getPatternLoc(), getSema(), clang::ValueDecl::getType(), clang::ConcreteTypeLoc< Base, Derived, TypeClass, LocalData >::getTypePtr(), clang::QualType::isNull(), clang::ValueDecl::isParameterPack(), SemaRef, clang::Sema::ExtParameterInfoBuilder::set(), and TryExpandParameterPacks().
Referenced by TransformFunctionProtoType(), and clang::TreeTransform< AdjustConstraintDepth >::TransformRequiresTypeParams().
ExprResult clang::TreeTransform< Derived >::TransformInitializer | ( | Expr * | Init, |
bool | NotCopyInit ) |
Transform the given initializer.
By default, this routine transforms an initializer by stripping off the semantic nodes added by initialization, then passing the result to TransformExpr or TransformExprs.
Definition at line 4380 of file TreeTransform.h.
References clang::ExprEmpty(), clang::ExprError(), clang::CXXConstructExpr::getArg(), clang::CXXConstructExpr::getArgs(), clang::CXXConstructExpr::getBeginLoc(), getDerived(), clang::CXXConstructExpr::getEndLoc(), clang::CXXConstructExpr::getNumArgs(), clang::CXXConstructExpr::getParenOrBraceRange(), getSema(), clang::OpaqueValueExpr::getSourceExpr(), clang::Init, clang::EnterExpressionEvaluationContext::InitList, clang::isa(), clang::CXXConstructExpr::isListInitialization(), clang::CXXConstructExpr::isStdInitListInitialization(), clang::Parens, TransformExprs(), and TransformInitializer().
Referenced by TransformInitializer().
StmtResult clang::TreeTransform< Derived >::TransformLambdaBody | ( | LambdaExpr * | E, |
Stmt * | Body ) |
Transform the body of a lambda-expression.
Definition at line 15827 of file TreeTransform.h.
References TransformStmt().
TemplateArgument clang::TreeTransform< Derived >::TransformNamedTemplateTemplateArgument | ( | NestedNameSpecifierLoc & | QualifierLoc, |
SourceLocation | TemplateKeywordLoc, | ||
TemplateName | Name, | ||
SourceLocation | NameLoc ) |
Definition at line 4913 of file TreeTransform.h.
References getDerived(), and clang::TemplateName::isNull().
NestedNameSpecifierLoc clang::TreeTransform< Derived >::TransformNestedNameSpecifierLoc | ( | NestedNameSpecifierLoc | NNS, |
QualType | ObjectType = QualType(), | ||
NamedDecl * | FirstQualifierInScope = nullptr ) |
Transform the given nested-name-specifier with source-location information.
By default, transforms all of the types and declarations within the nested-name-specifier. Subclasses may override this function to provide alternate behavior.
Definition at line 4616 of file TreeTransform.h.
References clang::CXXScopeSpec::Adopt(), AlreadyTransformed(), AlwaysRebuild(), clang::cast(), clang::NestedNameSpecifierLoc::castAsTypeLoc(), clang::Qualifiers::empty(), clang::CXXScopeSpec::Extend(), clang::TypeLoc::getAs(), clang::TypeLoc::getAsAdjusted(), clang::NestedNameSpecifier::getAsNamespaceAndPrefix(), clang::NestedNameSpecifier::getAsRecordDecl(), clang::NestedNameSpecifierLoc::getBeginLoc(), clang::TypeLoc::getBeginLoc(), clang::ElaboratedNameTypeLoc< TL, T >::getDecl(), getDerived(), clang::NestedNameSpecifierLoc::getEndLoc(), clang::NestedNameSpecifier::getKind(), clang::NestedNameSpecifierLoc::getLocalBeginLoc(), clang::NestedNameSpecifierLoc::getLocalEndLoc(), clang::NestedNameSpecifierLoc::getNestedNameSpecifier(), clang::NestedNameSpecifierLoc::getOpaqueData(), clang::CXXScopeSpec::getRange(), clang::CXXScopeSpec::getScopeRep(), clang::TypeLoc::getType(), clang::TypeLocBuilder::getTypeLocInContext(), clang::CXXScopeSpec::getWithLocInContext(), clang::NestedNameSpecifier::Global, clang::CXXScopeSpec::isEmpty(), clang::CXXScopeSpec::location_data(), clang::CXXScopeSpec::location_size(), clang::CXXScopeSpec::Make(), clang::CXXScopeSpec::MakeGlobal(), clang::CXXScopeSpec::MakeMicrosoftSuper(), clang::NestedNameSpecifier::MicrosoftSuper, clang::NamespaceAndPrefix::Namespace, clang::NestedNameSpecifier::Namespace, clang::NestedNameSpecifier::Null, SemaRef, clang::T, TransformDecl(), and clang::NestedNameSpecifier::Type.
concepts::NestedRequirement * clang::TreeTransform< Derived >::TransformNestedRequirement | ( | concepts::NestedRequirement * | Req | ) |
Definition at line 15148 of file TreeTransform.h.
References AlwaysRebuild(), clang::ActionResult< PtrTy, Compress >::get(), clang::concepts::NestedRequirement::getConstraintExpr(), clang::concepts::NestedRequirement::getConstraintSatisfaction(), getDerived(), clang::concepts::NestedRequirement::getInvalidConstraintEntity(), clang::concepts::NestedRequirement::hasInvalidConstraint(), and clang::ActionResult< PtrTy, Compress >::isInvalid().
OMPClause * clang::TreeTransform< Derived >::TransformOMPClause | ( | OMPClause * | S | ) |
Transform the given statement.
By default, this routine transforms a statement by delegating to the appropriate TransformOMPXXXClause function to transform a specific kind of clause. Subclasses may override this function to transform statements using some other mechanism.
Definition at line 4344 of file TreeTransform.h.
References clang::OMPClause::getClauseKind().
StmtResult clang::TreeTransform< Derived >::TransformOMPExecutableDirective | ( | OMPExecutableDirective * | S | ) |
Definition at line 9411 of file TreeTransform.h.
References clang::cast(), clang::ActionResult< PtrTy, Compress >::get(), getDerived(), getSema(), clang::ActionResult< PtrTy, Compress >::isInvalid(), clang::isOpenMPLoopDirective(), clang::ActionResult< PtrTy, Compress >::isUsable(), and clang::StmtError().
StmtResult clang::TreeTransform< Derived >::TransformOMPInformationalDirective | ( | OMPExecutableDirective * | D | ) |
This is mostly the same as above, but allows 'informational' class directives when rebuilding the stmt.
It still takes an OMPExecutableDirective-type argument because we're reusing that as the superclass for the 'assume' directive at present, instead of defining a mostly-identical OMPInformationalDirective parent class.
Definition at line 9485 of file TreeTransform.h.
References clang::C, clang::ActionResult< PtrTy, Compress >::get(), getDerived(), getSema(), clang::ActionResult< PtrTy, Compress >::isInvalid(), and clang::StmtError().
bool clang::TreeTransform< Derived >::TransformOverloadExprDecls | ( | OverloadExpr * | Old, |
bool | RequiresADL, | ||
LookupResult & | R ) |
Transform the set of declarations in an OverloadExpr.
Definition at line 14720 of file TreeTransform.h.
References clang::LookupResult::addDecl(), clang::cast(), clang::LookupResult::clear(), clang::OverloadExpr::decls(), clang::LookupResult::empty(), getDerived(), clang::Decl::getLocation(), clang::LookupResult::getLookupName(), clang::OverloadExpr::getName(), clang::LookupResult::getNameLoc(), clang::OverloadExpr::getNameLoc(), clang::OverloadExpr::getQualifierLoc(), clang::LookupResult::getRepresentativeDecl(), getSema(), clang::NestedNameSpecifierLoc::getSourceRange(), clang::OverloadExpr::getTemplateKeywordLoc(), clang::NamedDecl::getUnderlyingDecl(), clang::OverloadExpr::hasTemplateKeyword(), clang::isa(), and clang::LookupResult::resolveKind().
ExprResult clang::TreeTransform< Derived >::TransformParenDependentScopeDeclRefExpr | ( | ParenExpr * | PE, |
DependentScopeDeclRefExpr * | DRE, | ||
bool | IsAddressOfOperand, | ||
TypeSourceInfo ** | RecoveryTSI ) |
Definition at line 15207 of file TreeTransform.h.
References AlwaysRebuild(), clang::ActionResult< PtrTy, Compress >::get(), getDerived(), clang::ParenExpr::getLParen(), clang::ParenExpr::getRParen(), and clang::ActionResult< PtrTy, Compress >::isUsable().
QualType clang::TreeTransform< Derived >::TransformReferenceType | ( | TypeLocBuilder & | TLB, |
ReferenceTypeLoc | TL ) |
Transforms a reference type.
Note that somewhat paradoxically we don't care whether the type itself is an l-value type or an r-value type; we only care if the type was written as an l-value type or an r-value type.
Definition at line 5671 of file TreeTransform.h.
References AlwaysRebuild(), getDerived(), clang::PointerLikeTypeLoc< Derived, TypeClass, LocalData >::getPointeeLoc(), clang::ReferenceType::getPointeeTypeAsWritten(), clang::PointerLikeTypeLoc< Derived, TypeClass, LocalData >::getSigilLoc(), clang::TypeLoc::getType(), clang::ConcreteTypeLoc< Base, Derived, TypeClass, LocalData >::getTypePtr(), clang::isa(), clang::QualType::isNull(), clang::TypeLocBuilder::push(), clang::Result, clang::PointerLikeTypeLoc< Derived, TypeClass, LocalData >::setSigilLoc(), clang::T, and clang::TypeLocBuilder::TypeWasModifiedSafely().
bool clang::TreeTransform< Derived >::TransformRequiresExprRequirements | ( | ArrayRef< concepts::Requirement * > | Reqs, |
llvm::SmallVectorImpl< concepts::Requirement * > & | Transformed ) |
Definition at line 15071 of file TreeTransform.h.
References clang::cast(), and getDerived().
|
inline |
Transforms the parameters of a requires expresison into the given vectors.
The result vectors should be kept in sync; null entries in the variables vector are acceptable.
Returns an unset ExprResult on success. Returns an ExprResult the 'not satisfied' RequiresExpr if subsitution failed, OR an ExprError, both of which are cases where transformation shouldn't continue.
Definition at line 791 of file TreeTransform.h.
StmtResult clang::TreeTransform< Derived >::TransformSEHHandler | ( | Stmt * | Handler | ) |
Definition at line 9384 of file TreeTransform.h.
References clang::cast(), getDerived(), and clang::isa().
StmtResult clang::TreeTransform< Derived >::TransformStmt | ( | Stmt * | S, |
StmtDiscardKind | SDK = StmtDiscardKind::Discarded ) |
Transform the given statement.
By default, this routine transforms a statement by delegating to the appropriate TransformXXXStmt function to transform a specific kind of statement or the TransformExpr() function to transform an expression. Subclasses may override this function to transform statements using some other mechanism.
Definition at line 4308 of file TreeTransform.h.
References clang::cast(), Discarded, getDerived(), getSema(), clang::Stmt::getStmtClass(), clang::Stmt::NoStmtClass, and StmtExprResult.
Referenced by TransformLambdaBody().
const Attr * clang::TreeTransform< Derived >::TransformStmtAttr | ( | const Stmt * | OrigS, |
const Stmt * | InstS, | ||
const Attr * | A ) |
Definition at line 8156 of file TreeTransform.h.
References clang::Attr::getKind(), and TransformAttr().
QualType clang::TreeTransform< Derived >::TransformSubstTemplateTypeParmPackType | ( | TypeLocBuilder & | TLB, |
SubstTemplateTypeParmPackTypeLoc | TL, | ||
bool | SuppressObjCLifetime ) |
Definition at line 7246 of file TreeTransform.h.
References getDerived().
QualType clang::TreeTransform< Derived >::TransformTagType | ( | TypeLocBuilder & | TLB, |
TagTypeLoc | TL ) |
Definition at line 7141 of file TreeTransform.h.
References AlwaysRebuild(), getDerived(), clang::TagTypeLoc::getElaboratedKeywordLoc(), clang::TagTypeLoc::getNameLoc(), clang::NestedNameSpecifierLoc::getNestedNameSpecifier(), clang::TagTypeLoc::getQualifierLoc(), clang::TypeLoc::getType(), clang::ConcreteTypeLoc< Base, Derived, TypeClass, LocalData >::getTypePtr(), clang::TypeLocBuilder::push(), clang::Result, clang::TagTypeLoc::setElaboratedKeywordLoc(), clang::TagTypeLoc::setNameLoc(), clang::TagTypeLoc::setQualifierLoc(), clang::T, and TransformDecl().
bool clang::TreeTransform< Derived >::TransformTemplateArgument | ( | const TemplateArgumentLoc & | Input, |
TemplateArgumentLoc & | Output, | ||
bool | Uneval = false ) |
Transform the given template argument.
By default, this operation transforms the type, expression, or declaration stored within the template argument and constructs a new template argument from the transformed result. Subclasses may override this function to provide alternate behavior.
Returns true if there was an error.
Definition at line 4932 of file TreeTransform.h.
References clang::Sema::ConstantEvaluated, clang::TemplateArgument::Declaration, clang::Sema::ExpressionEvaluationContextRecord::EK_TemplateArgument, clang::TemplateArgument::Expression, clang::ActionResult< PtrTy, Compress >::get(), clang::TemplateArgumentLoc::getArgument(), clang::TemplateArgument::getAsDecl(), clang::TemplateArgument::getAsExpr(), clang::TemplateArgument::getAsIntegral(), clang::TemplateArgument::getAsStructuralValue(), clang::TemplateArgument::getAsTemplate(), clang::TemplateArgument::getAsType(), getBaseLocation(), getDerived(), clang::TemplateArgument::getKind(), clang::TemplateArgument::getNonTypeTemplateArgumentType(), getSema(), clang::TemplateArgumentLoc::getSourceExpression(), clang::TemplateArgumentLoc::getTemplateKWLoc(), clang::TemplateArgumentLoc::getTemplateNameLoc(), clang::TemplateArgumentLoc::getTemplateQualifierLoc(), clang::TypeSourceInfo::getType(), clang::TemplateArgumentLoc::getTypeSourceInfo(), clang::TemplateArgument::Integral, InventTypeSourceInfo(), clang::ActionResult< PtrTy, Compress >::isInvalid(), clang::QualType::isNull(), clang::TemplateArgument::Null, clang::TemplateArgument::NullPtr, clang::TemplateArgument::Pack, clang::Sema::ReuseLambdaContextDecl, SemaRef, clang::TemplateArgument::StructuralValue, clang::T, clang::TemplateArgument::Template, clang::TemplateArgument::TemplateExpansion, TransformDecl(), clang::TemplateArgument::Type, clang::Sema::Unevaluated, and clang::Unevaluated.
Referenced by ComputeSizeOfPackExprWithoutSubstitution(), PreparePackForExpansion(), and TransformTemplateArguments().
|
inline |
Transform the given set of template arguments.
By default, this operation transforms all of the template arguments in the input set using TransformTemplateArgument()
, and appends the transformed arguments to the output list.
Note that this overload of TransformTemplateArguments()
is merely a convenience function. Subclasses that wish to override this behavior should override the iterator-based member template version.
Inputs | The set of template arguments to be transformed. |
NumInputs | The number of template arguments in Inputs . |
Outputs | The set of transformed template arguments output by this routine. |
Returns true if an error occurred.
Definition at line 669 of file TreeTransform.h.
Referenced by TransformTemplateArguments(), and clang::TreeTransform< AdjustConstraintDepth >::TransformTemplateArguments().
bool clang::TreeTransform< Derived >::TransformTemplateArguments | ( | InputIterator | First, |
InputIterator | Last, | ||
TemplateArgumentListInfo & | Outputs, | ||
bool | Uneval = false ) |
Transform the given set of template arguments.
By default, this operation transforms all of the template arguments in the input set using TransformTemplateArgument()
, and appends the transformed arguments to the output list.
First | An iterator to the first template argument. |
Last | An iterator one step past the last template argument. |
Outputs | The set of transformed template arguments output by this routine. |
Returns true if an error occurred.
Definition at line 5099 of file TreeTransform.h.
References clang::TemplateArgumentListInfo::addArgument(), clang::UnexpandedInfo::Ellipsis, clang::UnexpandedInfo::Expand, clang::UnexpandedInfo::ExpandUnderForgetSubstitions, clang::First, getDerived(), getSema(), clang::Last, clang::UnexpandedInfo::NumExpansions, clang::UnexpandedInfo::OrigNumExpansions, clang::TemplateArgument::Pack, PreparePackForExpansion(), clang::UnexpandedInfo::RetainExpansion, TransformTemplateArgument(), and TransformTemplateArguments().
|
inline |
Transform a template parameter depth level.
During a transformation that transforms template parameters, this maps an old template parameter depth to a new depth.
Definition at line 253 of file TreeTransform.h.
TemplateName clang::TreeTransform< Derived >::TransformTemplateName | ( | NestedNameSpecifierLoc & | QualifierLoc, |
SourceLocation | TemplateKWLoc, | ||
TemplateName | Name, | ||
SourceLocation | NameLoc, | ||
QualType | ObjectType = QualType(), | ||
NamedDecl * | FirstQualifierInScope = nullptr, | ||
bool | AllowInjectedClassName = false ) |
Transform the given template name.
SS | The nested-name-specifier that qualifies the template name. This nested-name-specifier must already have been transformed. |
Name | The template name to transform. |
NameLoc | The source location of the template name. |
ObjectType | If we're translating a template name within a member access expression, this is the type of the object whose member template is being referenced. |
FirstQualifierInScope | If the first part of a nested-name-specifier also refers to a name within the current (lexical) scope, this is the declaration it refers to. |
By default, transforms the template name by transforming the declarations and nested-name-specifiers that occur within the template name. Subclasses may override this function to provide alternate behavior.
Definition at line 4807 of file TreeTransform.h.
References clang::CXXScopeSpec::Adopt(), AlwaysRebuild(), clang::TemplateName::getAsDeducedTemplateName(), clang::TemplateName::getAsDependentTemplateName(), clang::TemplateName::getAsQualifiedTemplateName(), clang::TemplateName::getAsSubstTemplateTemplateParm(), clang::TemplateName::getAsSubstTemplateTemplateParmPack(), clang::TemplateName::getAsTemplateDecl(), getDerived(), clang::NestedNameSpecifierLoc::getNestedNameSpecifier(), clang::TemplateName::getQualifier(), clang::QualType::isNull(), clang::TemplateName::isNull(), clang::NestedNameSpecifierLocBuilder::MakeTrivial(), SemaRef, clang::Template, clang::TemplateName, and TransformDecl().
|
inline |
Definition at line 832 of file TreeTransform.h.
QualType clang::TreeTransform< Derived >::TransformTemplateSpecializationType | ( | TypeLocBuilder & | TLB, |
TemplateSpecializationTypeLoc | TL, | ||
QualType | ObjectType, | ||
NamedDecl * | FirstQualifierInScope, | ||
bool | AllowInjectedClassName ) |
Definition at line 7497 of file TreeTransform.h.
References getDerived().
QualType clang::TreeTransform< Derived >::TransformTemplateTypeParmType | ( | TypeLocBuilder & | TLB, |
TemplateTypeParmTypeLoc | TL, | ||
bool | SuppressObjCLifetime ) |
Definition at line 7197 of file TreeTransform.h.
References getDerived().
QualType clang::TreeTransform< Derived >::TransformType | ( | QualType | T | ) |
Transforms the given type into another type.
By default, this routine transforms a type by creating a TypeSourceInfo for it and delegating to the appropriate function. This is expensive, but we don't mind, because this method is deprecated anyway; all users should be switched to storing TypeSourceInfos.
Definition at line 5298 of file TreeTransform.h.
References AlreadyTransformed(), getBaseLocation(), getDerived(), getSema(), clang::TypeSourceInfo::getType(), and clang::T.
Referenced by TransformTypeWithDeducedTST(), and TransformTypeWithDeducedTST().
QualType clang::TreeTransform< Derived >::TransformType | ( | TypeLocBuilder & | TLB, |
TypeLoc | TL ) |
Transform the given type-with-location into a new type, collecting location information in the given builder as necessary.
Definition at line 5337 of file TreeTransform.h.
References clang::T.
TypeSourceInfo * clang::TreeTransform< Derived >::TransformType | ( | TypeSourceInfo * | DI | ) |
Transforms the given type-with-location into a new type-with-location.
By default, this routine transforms a type by delegating to the appropriate TransformXXXType to build a new type. Subclasses may override this function (to take over all type transformations) or some set of the TransformXXXType functions to alter the transformation.
Definition at line 5316 of file TreeTransform.h.
References AlreadyTransformed(), getBaseEntity(), clang::TypeLoc::getBeginLoc(), getDerived(), clang::TypeLoc::getFullDataSize(), clang::TypeSourceInfo::getType(), clang::TypeSourceInfo::getTypeLoc(), clang::TypeLocBuilder::getTypeSourceInfo(), clang::TypeLocBuilder::reserve(), clang::Result, and SemaRef.
concepts::TypeRequirement * clang::TreeTransform< Derived >::TransformTypeRequirement | ( | concepts::TypeRequirement * | Req | ) |
Definition at line 15092 of file TreeTransform.h.
References AlwaysRebuild(), getDerived(), clang::concepts::TypeRequirement::getSubstitutionDiagnostic(), clang::concepts::TypeRequirement::getType(), and clang::concepts::TypeRequirement::isSubstitutionFailure().
QualType clang::TreeTransform< Derived >::TransformTypeWithDeducedTST | ( | QualType | T | ) |
Transform a type that is permitted to produce a DeducedTemplateSpecializationType.
This is used in the (relatively rare) contexts where it is acceptable for transformation to produce a class template type with deduced template arguments.
Definition at line 5351 of file TreeTransform.h.
References AlreadyTransformed(), getBaseLocation(), getDerived(), getSema(), clang::TypeSourceInfo::getType(), clang::isa(), clang::T, and TransformType().
TypeSourceInfo * clang::TreeTransform< Derived >::TransformTypeWithDeducedTST | ( | TypeSourceInfo * | DI | ) |
Definition at line 5365 of file TreeTransform.h.
References AlreadyTransformed(), clang::TypeLoc::castAs(), clang::TypeLoc::getAs(), getBaseEntity(), clang::TypeLoc::getBeginLoc(), getDerived(), clang::TypeLoc::getFullDataSize(), clang::TypeSourceInfo::getType(), clang::TypeSourceInfo::getTypeLoc(), clang::TypeLocBuilder::getTypeSourceInfo(), clang::TypeLoc::getUnqualifiedLoc(), clang::isa(), clang::TypeLocBuilder::reserve(), clang::Result, SemaRef, TransformType(), and clang::TypeLocBuilder::TypeWasModifiedSafely().
ExprResult clang::TreeTransform< Derived >::TransformUnresolvedLookupExpr | ( | UnresolvedLookupExpr * | E, |
bool | IsAddressOfOperand ) |
Definition at line 14796 of file TreeTransform.h.
References TransformUnresolvedLookupExpr().
Referenced by TransformUnresolvedLookupExpr().
|
inline |
Determine whether we should expand a pack expansion with the given set of parameter packs into separate arguments by repeatedly transforming the pattern.
By default, the transformer never tries to expand pack expansions. Subclasses can override this routine to provide different behavior.
EllipsisLoc | The location of the ellipsis that identifies the pack expansion. |
PatternRange | The source range that covers the entire pattern of the pack expansion. |
Unexpanded | The set of unexpanded parameter packs within the pattern. |
ShouldExpand | Will be set to true if the transformer should expand the corresponding pack expansions into separate arguments. When set, NumExpansions must also be set. |
RetainExpansion | Whether the caller should add an unexpanded pack expansion after all of the expanded arguments. This is used when extending explicitly-specified template argument packs per C++0x [temp.arg.explicit]p9. |
NumExpansions | The number of separate arguments that will be in the expanded form of the corresponding pack expansion. This is both an input and an output parameter, which can be set by the caller if the number of expansions is known a priori (e.g., due to a prior substitution) and will be set by the callee when the number of expansions is known. The callee must set this value when ShouldExpand is true ; it may set this value in other cases. |
ShouldExpand
(and possibly NumExpansions
) must be set. Definition at line 304 of file TreeTransform.h.
Referenced by TransformExceptionSpec(), TransformExprs(), and TransformFunctionTypeParams().
|
protected |
Definition at line 145 of file TreeTransform.h.
Referenced by RebuildArrayType(), RebuildAtomicType(), RebuildBitIntType(), RebuildBlockPointerType(), RebuildConstantMatrixType(), RebuildCXXOperatorCallExpr(), RebuildCXXPseudoDestructorExpr(), RebuildDecltypeType(), RebuildDependentAddressSpaceType(), RebuildDependentBitIntType(), RebuildDependentSizedExtVectorType(), RebuildDependentSizedMatrixType(), RebuildDependentVectorType(), RebuildExtVectorType(), RebuildFunctionNoProtoType(), RebuildFunctionProtoType(), RebuildMemberPointerType(), RebuildObjCObjectPointerType(), RebuildObjCObjectType(), RebuildObjCTypeParamType(), RebuildPackIndexingType(), RebuildPipeType(), RebuildPointerType(), RebuildQualifiedType(), RebuildReferenceType(), RebuildTemplateName(), RebuildTemplateSpecializationType(), RebuildTypeOfExprType(), RebuildTypeOfType(), RebuildUnaryTransformType(), RebuildUnresolvedUsingType(), RebuildVectorType(), TransformCondition(), TransformDeclarationNameInfo(), TransformExceptionSpec(), TransformExprRequirement(), TransformFunctionProtoType(), TransformFunctionTypeParam(), TransformFunctionTypeParams(), TransformNestedNameSpecifierLoc(), TransformTemplateArgument(), TransformTemplateName(), TransformType(), and TransformTypeWithDeducedTST().
|
protected |
The set of local declarations that have been transformed, for cases where we are forced to build new declarations within the transformer rather than in the subclass (e.g., lambda closure types).
Definition at line 150 of file TreeTransform.h.