clang 19.0.0git
Public Member Functions | List of all members
EnsureImmediateInvocationInDefaultArgs Struct Reference
Inheritance diagram for EnsureImmediateInvocationInDefaultArgs:
Inheritance graph
[legend]

Public Member Functions

 EnsureImmediateInvocationInDefaultArgs (Sema &SemaRef)
 
ExprResult TransformLambdaExpr (LambdaExpr *E)
 
ExprResult TransformBlockExpr (BlockExpr *E)
 
ExprResult TransformCXXThisExpr (CXXThisExpr *E)
 
- Public Member Functions inherited from clang::TreeTransform< EnsureImmediateInvocationInDefaultArgs >
 TreeTransform (Sema &SemaRef)
 Initializes a new tree transformer.
 
EnsureImmediateInvocationInDefaultArgsgetDerived ()
 Retrieves a reference to the derived class.
 
const EnsureImmediateInvocationInDefaultArgsgetDerived () const
 Retrieves a reference to the derived class.
 
SemagetSema () 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 &ShouldExpand, bool &RetainExpansion, std::optional< unsigned > &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.
 
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.
 
TypeSourceInfoTransformType (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=SDK_Discarded)
 Transform the given statement.
 
OMPClauseTransformOMPClause (OMPClause *S)
 Transform the given statement.
 
const AttrTransformAttr (const Attr *S)
 Transform the given attribute.
 
const AttrTransformStmtAttr (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.
 
DeclTransformDecl (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.
 
DeclTransformDefinition (SourceLocation Loc, Decl *D)
 Transform the definition of the given declaration.
 
NamedDeclTransformFirstQualifierInScope (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::TypeRequirementTransformTypeRequirement (concepts::TypeRequirement *Req)
 
concepts::ExprRequirementTransformExprRequirement (concepts::ExprRequirement *Req)
 
concepts::NestedRequirementTransformNestedRequirement (concepts::NestedRequirement *Req)
 
TemplateName TransformTemplateName (CXXScopeSpec &SS, 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.
 
bool TransformTemplateArguments (const TemplateArgumentLoc *Inputs, unsigned NumInputs, TemplateArgumentListInfo &Outputs, bool Uneval=false)
 Transform the given set of template arguments.
 
bool TransformTemplateArguments (InputIterator First, InputIterator Last, TemplateArgumentListInfo &Outputs, bool Uneval=false)
 Transform the given set of template arguments.
 
void InventTemplateArgumentLoc (const TemplateArgument &Arg, TemplateArgumentLoc &ArgLoc)
 Fakes up a TemplateArgumentLoc for a given TemplateArgument.
 
TypeSourceInfoInventTypeSourceInfo (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)
 
QualType TransformFunctionProtoType (TypeLocBuilder &TLB, FunctionProtoTypeLoc TL, CXXRecordDecl *ThisContext, Qualifiers ThisTypeQuals, Fn TransformExceptionSpec)
 
QualType TransformFunctionProtoType (TypeLocBuilder &TLB, FunctionProtoTypeLoc TL)
 
QualType TransformAttributedType (TypeLocBuilder &TLB, AttributedTypeLoc TL, Fn TransformModifiedType)
 
QualType TransformAttributedType (TypeLocBuilder &TLB, AttributedTypeLoc TL)
 
bool TransformExceptionSpec (SourceLocation Loc, FunctionProtoType::ExceptionSpecInfo &ESI, SmallVectorImpl< QualType > &Exceptions, bool &Changed)
 
StmtResult TransformSEHHandler (Stmt *Handler)
 
QualType TransformTemplateSpecializationType (TypeLocBuilder &TLB, TemplateSpecializationTypeLoc TL, TemplateName Template)
 
QualType TransformDependentTemplateSpecializationType (TypeLocBuilder &TLB, DependentTemplateSpecializationTypeLoc TL, TemplateName Template, CXXScopeSpec &SS)
 
QualType TransformDependentTemplateSpecializationType (TypeLocBuilder &TLB, DependentTemplateSpecializationTypeLoc TL, NestedNameSpecifierLoc QualifierLoc)
 
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.
 
ParmVarDeclTransformFunctionTypeParam (ParmVarDecl *OldParm, int indexAdjustment, std::optional< unsigned > 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)
 
TemplateParameterListTransformTemplateParameterList (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)
 
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, QualType ClassType, SourceLocation Sigil)
 Build a new member pointer type given the pointee type and the class type 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 (SourceLocation NameLoc, Decl *D)
 Rebuild an unresolved typename type, given the decl that the UnresolvedUsingTypenameDecl was transformed to.
 
QualType RebuildUsingType (UsingShadowDecl *Found, QualType Underlying)
 Build a new type found via an alias.
 
QualType RebuildTypedefType (TypedefNameDecl *Typedef)
 Build a new typedef type.
 
QualType RebuildMacroQualifiedType (QualType T, const IdentifierInfo *MacroII)
 Build a new MacroDefined type.
 
QualType RebuildRecordType (RecordDecl *Record)
 Build a new class/struct/union type.
 
QualType RebuildEnumType (EnumDecl *Enum)
 Build a new Enum type.
 
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 (TemplateName Template, QualType Deduced)
 By default, builds a new DeducedTemplateSpecializationType with the given deduced type.
 
QualType RebuildTemplateSpecializationType (TemplateName Template, SourceLocation TemplateLoc, TemplateArgumentListInfo &Args)
 Build a new template specialization type.
 
QualType RebuildParenType (QualType InnerType)
 Build a new parenthesized type.
 
QualType RebuildElaboratedType (SourceLocation KeywordLoc, ElaboratedTypeKeyword Keyword, NestedNameSpecifierLoc QualifierLoc, QualType Named)
 Build a new qualified name type.
 
QualType RebuildDependentTemplateSpecializationType (ElaboratedTypeKeyword Keyword, NestedNameSpecifierLoc QualifierLoc, SourceLocation TemplateKWLoc, const IdentifierInfo *Name, SourceLocation NameLoc, TemplateArgumentListInfo &Args, bool AllowInjectedClassName)
 Build a new typename type that refers to a template-id.
 
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, std::optional< unsigned > 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, TemplateDecl *Template)
 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, NamedDecl *FirstQualifierInScope, 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 (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.
 
VarDeclRebuildObjCExceptionDecl (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, OpenMPDirectiveKind PrevMappedDirective=OMPD_unknown)
 Build a new OpenMP executable directive.
 
OMPClauseRebuildOMPIfClause (OpenMPDirectiveKind NameModifier, Expr *Condition, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation NameModifierLoc, SourceLocation ColonLoc, SourceLocation EndLoc)
 Build a new OpenMP 'if' clause.
 
OMPClauseRebuildOMPFinalClause (Expr *Condition, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc)
 Build a new OpenMP 'final' clause.
 
OMPClauseRebuildOMPNumThreadsClause (Expr *NumThreads, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc)
 Build a new OpenMP 'num_threads' clause.
 
OMPClauseRebuildOMPSafelenClause (Expr *Len, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc)
 Build a new OpenMP 'safelen' clause.
 
OMPClauseRebuildOMPSimdlenClause (Expr *Len, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc)
 Build a new OpenMP 'simdlen' clause.
 
OMPClauseRebuildOMPSizesClause (ArrayRef< Expr * > Sizes, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc)
 
OMPClauseRebuildOMPFullClause (SourceLocation StartLoc, SourceLocation EndLoc)
 Build a new OpenMP 'full' clause.
 
OMPClauseRebuildOMPPartialClause (Expr *Factor, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc)
 Build a new OpenMP 'partial' clause.
 
OMPClauseRebuildOMPAllocatorClause (Expr *A, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc)
 Build a new OpenMP 'allocator' clause.
 
OMPClauseRebuildOMPCollapseClause (Expr *Num, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc)
 Build a new OpenMP 'collapse' clause.
 
OMPClauseRebuildOMPDefaultClause (DefaultKind Kind, SourceLocation KindKwLoc, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc)
 Build a new OpenMP 'default' clause.
 
OMPClauseRebuildOMPProcBindClause (ProcBindKind Kind, SourceLocation KindKwLoc, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc)
 Build a new OpenMP 'proc_bind' clause.
 
OMPClauseRebuildOMPScheduleClause (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.
 
OMPClauseRebuildOMPOrderedClause (SourceLocation StartLoc, SourceLocation EndLoc, SourceLocation LParenLoc, Expr *Num)
 Build a new OpenMP 'ordered' clause.
 
OMPClauseRebuildOMPPrivateClause (ArrayRef< Expr * > VarList, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc)
 Build a new OpenMP 'private' clause.
 
OMPClauseRebuildOMPFirstprivateClause (ArrayRef< Expr * > VarList, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc)
 Build a new OpenMP 'firstprivate' clause.
 
OMPClauseRebuildOMPLastprivateClause (ArrayRef< Expr * > VarList, OpenMPLastprivateModifier LPKind, SourceLocation LPKindLoc, SourceLocation ColonLoc, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc)
 Build a new OpenMP 'lastprivate' clause.
 
OMPClauseRebuildOMPSharedClause (ArrayRef< Expr * > VarList, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc)
 Build a new OpenMP 'shared' clause.
 
OMPClauseRebuildOMPReductionClause (ArrayRef< Expr * > VarList, OpenMPReductionClauseModifier Modifier, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation ModifierLoc, SourceLocation ColonLoc, SourceLocation EndLoc, CXXScopeSpec &ReductionIdScopeSpec, const DeclarationNameInfo &ReductionId, ArrayRef< Expr * > UnresolvedReductions)
 Build a new OpenMP 'reduction' clause.
 
OMPClauseRebuildOMPTaskReductionClause (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.
 
OMPClauseRebuildOMPInReductionClause (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.
 
OMPClauseRebuildOMPLinearClause (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.
 
OMPClauseRebuildOMPAlignedClause (ArrayRef< Expr * > VarList, Expr *Alignment, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation ColonLoc, SourceLocation EndLoc)
 Build a new OpenMP 'aligned' clause.
 
OMPClauseRebuildOMPCopyinClause (ArrayRef< Expr * > VarList, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc)
 Build a new OpenMP 'copyin' clause.
 
OMPClauseRebuildOMPCopyprivateClause (ArrayRef< Expr * > VarList, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc)
 Build a new OpenMP 'copyprivate' clause.
 
OMPClauseRebuildOMPFlushClause (ArrayRef< Expr * > VarList, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc)
 Build a new OpenMP 'flush' pseudo clause.
 
OMPClauseRebuildOMPDepobjClause (Expr *Depobj, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc)
 Build a new OpenMP 'depobj' pseudo clause.
 
OMPClauseRebuildOMPDependClause (OMPDependClause::DependDataTy Data, Expr *DepModifier, ArrayRef< Expr * > VarList, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc)
 Build a new OpenMP 'depend' pseudo clause.
 
OMPClauseRebuildOMPDeviceClause (OpenMPDeviceClauseModifier Modifier, Expr *Device, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation ModifierLoc, SourceLocation EndLoc)
 Build a new OpenMP 'device' clause.
 
OMPClauseRebuildOMPMapClause (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.
 
OMPClauseRebuildOMPAllocateClause (Expr *Allocate, ArrayRef< Expr * > VarList, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation ColonLoc, SourceLocation EndLoc)
 Build a new OpenMP 'allocate' clause.
 
OMPClauseRebuildOMPNumTeamsClause (Expr *NumTeams, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc)
 Build a new OpenMP 'num_teams' clause.
 
OMPClauseRebuildOMPThreadLimitClause (Expr *ThreadLimit, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc)
 Build a new OpenMP 'thread_limit' clause.
 
OMPClauseRebuildOMPPriorityClause (Expr *Priority, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc)
 Build a new OpenMP 'priority' clause.
 
OMPClauseRebuildOMPGrainsizeClause (OpenMPGrainsizeClauseModifier Modifier, Expr *Device, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation ModifierLoc, SourceLocation EndLoc)
 Build a new OpenMP 'grainsize' clause.
 
OMPClauseRebuildOMPNumTasksClause (OpenMPNumTasksClauseModifier Modifier, Expr *NumTasks, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation ModifierLoc, SourceLocation EndLoc)
 Build a new OpenMP 'num_tasks' clause.
 
OMPClauseRebuildOMPHintClause (Expr *Hint, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc)
 Build a new OpenMP 'hint' clause.
 
OMPClauseRebuildOMPDetachClause (Expr *Evt, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc)
 Build a new OpenMP 'detach' clause.
 
OMPClauseRebuildOMPDistScheduleClause (OpenMPDistScheduleClauseKind Kind, Expr *ChunkSize, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation KindLoc, SourceLocation CommaLoc, SourceLocation EndLoc)
 Build a new OpenMP 'dist_schedule' clause.
 
OMPClauseRebuildOMPToClause (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.
 
OMPClauseRebuildOMPFromClause (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.
 
OMPClauseRebuildOMPUseDevicePtrClause (ArrayRef< Expr * > VarList, const OMPVarListLocTy &Locs)
 Build a new OpenMP 'use_device_ptr' clause.
 
OMPClauseRebuildOMPUseDeviceAddrClause (ArrayRef< Expr * > VarList, const OMPVarListLocTy &Locs)
 Build a new OpenMP 'use_device_addr' clause.
 
OMPClauseRebuildOMPIsDevicePtrClause (ArrayRef< Expr * > VarList, const OMPVarListLocTy &Locs)
 Build a new OpenMP 'is_device_ptr' clause.
 
OMPClauseRebuildOMPHasDeviceAddrClause (ArrayRef< Expr * > VarList, const OMPVarListLocTy &Locs)
 Build a new OpenMP 'has_device_addr' clause.
 
OMPClauseRebuildOMPDefaultmapClause (OpenMPDefaultmapClauseModifier M, OpenMPDefaultmapClauseKind Kind, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation MLoc, SourceLocation KindLoc, SourceLocation EndLoc)
 Build a new OpenMP 'defaultmap' clause.
 
OMPClauseRebuildOMPNontemporalClause (ArrayRef< Expr * > VarList, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc)
 Build a new OpenMP 'nontemporal' clause.
 
OMPClauseRebuildOMPInclusiveClause (ArrayRef< Expr * > VarList, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc)
 Build a new OpenMP 'inclusive' clause.
 
OMPClauseRebuildOMPExclusiveClause (ArrayRef< Expr * > VarList, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc)
 Build a new OpenMP 'exclusive' clause.
 
OMPClauseRebuildOMPUsesAllocatorsClause (ArrayRef< Sema::UsesAllocatorsData > Data, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc)
 Build a new OpenMP 'uses_allocators' clause.
 
OMPClauseRebuildOMPAffinityClause (SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation ColonLoc, SourceLocation EndLoc, Expr *Modifier, ArrayRef< Expr * > Locators)
 Build a new OpenMP 'affinity' clause.
 
OMPClauseRebuildOMPOrderClause (OpenMPOrderClauseKind Kind, SourceLocation KindKwLoc, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc, OpenMPOrderClauseModifier Modifier, SourceLocation ModifierKwLoc)
 Build a new OpenMP 'order' clause.
 
OMPClauseRebuildOMPInitClause (Expr *InteropVar, OMPInteropInfo &InteropInfo, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation VarLoc, SourceLocation EndLoc)
 Build a new OpenMP 'init' clause.
 
OMPClauseRebuildOMPUseClause (Expr *InteropVar, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation VarLoc, SourceLocation EndLoc)
 Build a new OpenMP 'use' clause.
 
OMPClauseRebuildOMPDestroyClause (Expr *InteropVar, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation VarLoc, SourceLocation EndLoc)
 Build a new OpenMP 'destroy' clause.
 
OMPClauseRebuildOMPNovariantsClause (Expr *Condition, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc)
 Build a new OpenMP 'novariants' clause.
 
OMPClauseRebuildOMPNocontextClause (Expr *Condition, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc)
 Build a new OpenMP 'nocontext' clause.
 
OMPClauseRebuildOMPFilterClause (Expr *ThreadID, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc)
 Build a new OpenMP 'filter' clause.
 
OMPClauseRebuildOMPBindClause (OpenMPBindClauseKind Kind, SourceLocation KindLoc, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc)
 Build a new OpenMP 'bind' clause.
 
OMPClauseRebuildOMPXDynCGroupMemClause (Expr *Size, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc)
 Build a new OpenMP 'ompx_dyn_cgroup_mem' clause.
 
OMPClauseRebuildOMPXAttributeClause (ArrayRef< const Attr * > Attrs, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc)
 Build a new OpenMP 'ompx_attribute' clause.
 
OMPClauseRebuildOMPXBareClause (SourceLocation StartLoc, SourceLocation EndLoc)
 Build a new OpenMP 'ompx_bare' clause.
 
OMPClauseRebuildOMPAlignClause (Expr *A, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc)
 Build a new OpenMP 'align' clause.
 
OMPClauseRebuildOMPAtClause (OpenMPAtClauseKind Kind, SourceLocation KwLoc, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc)
 Build a new OpenMP 'at' clause.
 
OMPClauseRebuildOMPSeverityClause (OpenMPSeverityClauseKind Kind, SourceLocation KwLoc, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc)
 Build a new OpenMP 'severity' clause.
 
OMPClauseRebuildOMPMessageClause (Expr *MS, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc)
 Build a new OpenMP 'message' clause.
 
OMPClauseRebuildOMPDoacrossClause (OpenMPDoacrossClauseModifier DepType, SourceLocation DepLoc, SourceLocation ColonLoc, ArrayRef< Expr * > VarList, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc)
 Build a new OpenMP 'doacross' 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.
 
VarDeclRebuildExceptionDecl (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 RebuildOMPArraySectionExpr (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< Sema::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)
 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 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.
 
ExprResult RebuildSizeOfPackExpr (SourceLocation OperatorLoc, NamedDecl *Pack, SourceLocation PackLoc, SourceLocation RParenLoc, std::optional< unsigned > 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 EmptyPack=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::TypeRequirementRebuildTypeRequirement (concepts::Requirement::SubstitutionDiagnostic *SubstDiag)
 
concepts::TypeRequirementRebuildTypeRequirement (TypeSourceInfo *T)
 
concepts::ExprRequirementRebuildExprRequirement (concepts::Requirement::SubstitutionDiagnostic *SubstDiag, bool IsSimple, SourceLocation NoexceptLoc, concepts::ExprRequirement::ReturnTypeRequirement Ret)
 
concepts::ExprRequirementRebuildExprRequirement (Expr *E, bool IsSimple, SourceLocation NoexceptLoc, concepts::ExprRequirement::ReturnTypeRequirement Ret)
 
concepts::NestedRequirementRebuildNestedRequirement (StringRef InvalidConstraintEntity, const ASTConstraintSatisfaction &Satisfaction)
 
concepts::NestedRequirementRebuildNestedRequirement (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, std::optional< unsigned > NumExpansions)
 Build a new template argument pack expansion.
 
ExprResult RebuildPackExpansion (Expr *Pattern, SourceLocation EllipsisLoc, std::optional< unsigned > NumExpansions)
 Build a new expression pack expansion.
 
ExprResult RebuildCXXFoldExpr (UnresolvedLookupExpr *ULE, SourceLocation LParenLoc, Expr *LHS, BinaryOperatorKind Operator, SourceLocation EllipsisLoc, Expr *RHS, SourceLocation RParenLoc, std::optional< unsigned > NumExpansions)
 Build a new C++1z fold-expression.
 
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 EndLoc, ArrayRef< OpenACCClause * > Clauses, StmtResult StrBlock)
 
QualType TransformTypeWithDeducedTST (QualType T)
 Transform a type that is permitted to produce a DeducedTemplateSpecializationType.
 
TypeSourceInfoTransformTypeWithDeducedTST (TypeSourceInfo *DI)
 

Additional Inherited Members

- Public Types inherited from clang::TreeTransform< EnsureImmediateInvocationInDefaultArgs >
enum  StmtDiscardKind
 The reason why the value of a statement is not discarded, if any. More...
 
- Static Public Member Functions inherited from clang::TreeTransform< EnsureImmediateInvocationInDefaultArgs >
static ExprResult Owned (Expr *E)
 
static StmtResult Owned (Stmt *S)
 
- Protected Attributes inherited from clang::TreeTransform< EnsureImmediateInvocationInDefaultArgs >
SemaSemaRef
 
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).
 

Detailed Description

Definition at line 6229 of file SemaExpr.cpp.

Constructor & Destructor Documentation

◆ EnsureImmediateInvocationInDefaultArgs()

EnsureImmediateInvocationInDefaultArgs::EnsureImmediateInvocationInDefaultArgs ( Sema SemaRef)
inline

Definition at line 6231 of file SemaExpr.cpp.

Member Function Documentation

◆ TransformBlockExpr()

ExprResult EnsureImmediateInvocationInDefaultArgs::TransformBlockExpr ( BlockExpr E)
inline

Definition at line 6239 of file SemaExpr.cpp.

◆ TransformCXXThisExpr()

ExprResult EnsureImmediateInvocationInDefaultArgs::TransformCXXThisExpr ( CXXThisExpr E)
inline

Definition at line 6244 of file SemaExpr.cpp.

◆ TransformLambdaExpr()

ExprResult EnsureImmediateInvocationInDefaultArgs::TransformLambdaExpr ( LambdaExpr E)
inline

Definition at line 6238 of file SemaExpr.cpp.


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