class TreeTransform

Declaration

template <typename Derived>
class TreeTransform { /* full declaration omitted */ };

Description

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 \c X of\c 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\c 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 \c RebuildXXX functions to control how AST nodes are rebuilt when their operands change. By default, \c 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 (\c AlreadyTransformed()), force rebuilding AST nodes even when their operands have not changed (\c AlwaysRebuild()), and customize the default locations and entity names used for type-checking (\c getBaseLocation(), \c getBaseEntity()).

Declared at: clang/lib/Sema/TreeTransform.h:101

Templates

Derived

Member Variables

protected clang::Sema& SemaRef
protected 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).

Method Overview

  • public bool AllowSkippingCXXConstructExpr()
  • public bool AlreadyTransformed(clang::QualType T)
  • public bool AlwaysRebuild()
  • public bool DropCallArgument(clang::Expr * E)
  • public void ExpandingFunctionParameterPack(clang::ParmVarDecl * Pack)
  • public clang::StmtResult FinishCXXForRangeStmt(clang::Stmt * ForRange, clang::Stmt * Body)
  • public clang::TemplateArgument ForgetPartiallySubstitutedPack()
  • public void InventTemplateArgumentLoc(const clang::TemplateArgument & Arg, clang::TemplateArgumentLoc & ArgLoc)
  • public clang::TypeSourceInfo * InventTypeSourceInfo(clang::QualType T)
  • public static inline clang::ExprResult Owned(clang::Expr * E)
  • public static inline clang::StmtResult Owned(clang::Stmt * S)
  • public clang::ExprResult RebuildAddrLabelExpr(clang::SourceLocation AmpAmpLoc, clang::SourceLocation LabelLoc, clang::LabelDecl * Label)
  • public clang::ExprResult RebuildArraySubscriptExpr(clang::Expr * LHS, clang::SourceLocation LBracketLoc, clang::Expr * RHS, clang::SourceLocation RBracketLoc)
  • public clang::QualType RebuildArrayType(clang::QualType ElementType, ArrayType::ArraySizeModifier SizeMod, const llvm::APInt * Size, clang::Expr * SizeExpr, unsigned int IndexTypeQuals, clang::SourceRange BracketsRange)
  • public clang::ExprResult RebuildArrayTypeTrait(clang::ArrayTypeTrait Trait, clang::SourceLocation StartLoc, clang::TypeSourceInfo * TSInfo, clang::Expr * DimExpr, clang::SourceLocation RParenLoc)
  • public clang::ExprResult RebuildAtomicExpr(clang::SourceLocation BuiltinLoc, clang::MultiExprArg SubExprs, AtomicExpr::AtomicOp Op, clang::SourceLocation RParenLoc)
  • public clang::QualType RebuildAtomicType(clang::QualType ValueType, clang::SourceLocation KWLoc)
  • public clang::StmtResult RebuildAttributedStmt(clang::SourceLocation AttrLoc, ArrayRef<const clang::Attr *> Attrs, clang::Stmt * SubStmt)
  • public clang::QualType RebuildAutoType(clang::QualType Deduced, clang::AutoTypeKeyword Keyword, clang::ConceptDecl * TypeConstraintConcept, ArrayRef<clang::TemplateArgument> TypeConstraintArgs)
  • public clang::ExprResult RebuildBinaryOperator(clang::SourceLocation OpLoc, clang::BinaryOperatorKind Opc, clang::Expr * LHS, clang::Expr * RHS)
  • public clang::QualType RebuildBitIntType(bool IsUnsigned, unsigned int NumBits, clang::SourceLocation Loc)
  • public clang::QualType RebuildBlockPointerType(clang::QualType PointeeType, clang::SourceLocation Sigil)
  • public clang::ExprResult RebuildBuiltinBitCastExpr(clang::SourceLocation KWLoc, clang::TypeSourceInfo * TSI, clang::Expr * Sub, clang::SourceLocation RParenLoc)
  • public clang::ExprResult RebuildCStyleCastExpr(clang::SourceLocation LParenLoc, clang::TypeSourceInfo * TInfo, clang::SourceLocation RParenLoc, clang::Expr * SubExpr)
  • public clang::ExprResult RebuildCXXAddrspaceCastExpr(clang::SourceLocation OpLoc, clang::SourceLocation LAngleLoc, clang::TypeSourceInfo * TInfo, clang::SourceLocation RAngleLoc, clang::SourceLocation LParenLoc, clang::Expr * SubExpr, clang::SourceLocation RParenLoc)
  • public clang::StmtResult RebuildCXXCatchStmt(clang::SourceLocation CatchLoc, clang::VarDecl * ExceptionDecl, clang::Stmt * Handler)
  • public clang::ExprResult RebuildCXXConstCastExpr(clang::SourceLocation OpLoc, clang::SourceLocation LAngleLoc, clang::TypeSourceInfo * TInfo, clang::SourceLocation RAngleLoc, clang::SourceLocation LParenLoc, clang::Expr * SubExpr, clang::SourceLocation RParenLoc)
  • public clang::ExprResult RebuildCXXConstructExpr(clang::QualType T, clang::SourceLocation Loc, clang::CXXConstructorDecl * Constructor, bool IsElidable, clang::MultiExprArg Args, bool HadMultipleCandidates, bool ListInitialization, bool StdInitListInitialization, bool RequiresZeroInit, CXXConstructExpr::ConstructionKind ConstructKind, clang::SourceRange ParenRange)
  • public clang::ExprResult RebuildCXXDefaultArgExpr(clang::SourceLocation Loc, clang::ParmVarDecl * Param)
  • public clang::ExprResult RebuildCXXDefaultInitExpr(clang::SourceLocation Loc, clang::FieldDecl * Field)
  • public clang::ExprResult RebuildCXXDeleteExpr(clang::SourceLocation StartLoc, bool IsGlobalDelete, bool IsArrayForm, clang::Expr * Operand)
  • public clang::ExprResult RebuildCXXDependentScopeMemberExpr(clang::Expr * BaseE, clang::QualType BaseType, bool IsArrow, clang::SourceLocation OperatorLoc, clang::NestedNameSpecifierLoc QualifierLoc, clang::SourceLocation TemplateKWLoc, clang::NamedDecl * FirstQualifierInScope, const clang::DeclarationNameInfo & MemberNameInfo, const clang::TemplateArgumentListInfo * TemplateArgs)
  • public clang::ExprResult RebuildCXXDynamicCastExpr(clang::SourceLocation OpLoc, clang::SourceLocation LAngleLoc, clang::TypeSourceInfo * TInfo, clang::SourceLocation RAngleLoc, clang::SourceLocation LParenLoc, clang::Expr * SubExpr, clang::SourceLocation RParenLoc)
  • public clang::ExprResult RebuildCXXFoldExpr(clang::UnresolvedLookupExpr * ULE, clang::SourceLocation LParenLoc, clang::Expr * LHS, clang::BinaryOperatorKind Operator, clang::SourceLocation EllipsisLoc, clang::Expr * RHS, clang::SourceLocation RParenLoc, Optional<unsigned int> NumExpansions)
  • public clang::StmtResult RebuildCXXForRangeStmt(clang::SourceLocation ForLoc, clang::SourceLocation CoawaitLoc, clang::Stmt * Init, clang::SourceLocation ColonLoc, clang::Stmt * Range, clang::Stmt * Begin, clang::Stmt * End, clang::Expr * Cond, clang::Expr * Inc, clang::Stmt * LoopVar, clang::SourceLocation RParenLoc)
  • public clang::ExprResult RebuildCXXFunctionalCastExpr(clang::TypeSourceInfo * TInfo, clang::SourceLocation LParenLoc, clang::Expr * Sub, clang::SourceLocation RParenLoc, bool ListInitialization)
  • public clang::ExprResult RebuildCXXInheritedCtorInitExpr(clang::QualType T, clang::SourceLocation Loc, clang::CXXConstructorDecl * Constructor, bool ConstructsVBase, bool InheritedFromVBase)
  • public clang::ExprResult RebuildCXXNamedCastExpr(clang::SourceLocation OpLoc, Stmt::StmtClass Class, clang::SourceLocation LAngleLoc, clang::TypeSourceInfo * TInfo, clang::SourceLocation RAngleLoc, clang::SourceLocation LParenLoc, clang::Expr * SubExpr, clang::SourceLocation RParenLoc)
  • public clang::ExprResult RebuildCXXNewExpr(clang::SourceLocation StartLoc, bool UseGlobal, clang::SourceLocation PlacementLParen, clang::MultiExprArg PlacementArgs, clang::SourceLocation PlacementRParen, clang::SourceRange TypeIdParens, clang::QualType AllocatedType, clang::TypeSourceInfo * AllocatedTypeInfo, Optional<clang::Expr *> ArraySize, clang::SourceRange DirectInitRange, clang::Expr * Initializer)
  • public clang::ExprResult RebuildCXXNoexceptExpr(clang::SourceRange Range, clang::Expr * Arg)
  • public clang::ExprResult RebuildCXXOperatorCallExpr(clang::OverloadedOperatorKind Op, clang::SourceLocation OpLoc, clang::Expr * Callee, clang::Expr * First, clang::Expr * Second)
  • public clang::ExprResult RebuildCXXPseudoDestructorExpr(clang::Expr * Base, clang::SourceLocation OperatorLoc, bool isArrow, clang::CXXScopeSpec & SS, clang::TypeSourceInfo * ScopeType, clang::SourceLocation CCLoc, clang::SourceLocation TildeLoc, clang::PseudoDestructorTypeStorage Destroyed)
  • public clang::ExprResult RebuildCXXReinterpretCastExpr(clang::SourceLocation OpLoc, clang::SourceLocation LAngleLoc, clang::TypeSourceInfo * TInfo, clang::SourceLocation RAngleLoc, clang::SourceLocation LParenLoc, clang::Expr * SubExpr, clang::SourceLocation RParenLoc)
  • public clang::ExprResult RebuildCXXRewrittenBinaryOperator(clang::SourceLocation OpLoc, clang::BinaryOperatorKind Opcode, const clang::UnresolvedSetImpl & UnqualLookups, clang::Expr * LHS, clang::Expr * RHS)
  • public clang::ExprResult RebuildCXXScalarValueInitExpr(clang::TypeSourceInfo * TSInfo, clang::SourceLocation LParenLoc, clang::SourceLocation RParenLoc)
  • public clang::ExprResult RebuildCXXStaticCastExpr(clang::SourceLocation OpLoc, clang::SourceLocation LAngleLoc, clang::TypeSourceInfo * TInfo, clang::SourceLocation RAngleLoc, clang::SourceLocation LParenLoc, clang::Expr * SubExpr, clang::SourceLocation RParenLoc)
  • public clang::ExprResult RebuildCXXTemporaryObjectExpr(clang::TypeSourceInfo * TSInfo, clang::SourceLocation LParenOrBraceLoc, clang::MultiExprArg Args, clang::SourceLocation RParenOrBraceLoc, bool ListInitialization)
  • public clang::ExprResult RebuildCXXThisExpr(clang::SourceLocation ThisLoc, clang::QualType ThisType, bool isImplicit)
  • public clang::ExprResult RebuildCXXThrowExpr(clang::SourceLocation ThrowLoc, clang::Expr * Sub, bool IsThrownVariableInScope)
  • public clang::StmtResult RebuildCXXTryStmt(clang::SourceLocation TryLoc, clang::Stmt * TryBlock, ArrayRef<clang::Stmt *> Handlers)
  • public clang::ExprResult RebuildCXXTypeidExpr(clang::QualType TypeInfoType, clang::SourceLocation TypeidLoc, clang::Expr * Operand, clang::SourceLocation RParenLoc)
  • public clang::ExprResult RebuildCXXTypeidExpr(clang::QualType TypeInfoType, clang::SourceLocation TypeidLoc, clang::TypeSourceInfo * Operand, clang::SourceLocation RParenLoc)
  • public clang::ExprResult RebuildCXXUnresolvedConstructExpr(clang::TypeSourceInfo * TSInfo, clang::SourceLocation LParenLoc, clang::MultiExprArg Args, clang::SourceLocation RParenLoc, bool ListInitialization)
  • public clang::ExprResult RebuildCXXUuidofExpr(clang::QualType Type, clang::SourceLocation TypeidLoc, clang::Expr * Operand, clang::SourceLocation RParenLoc)
  • public clang::ExprResult RebuildCXXUuidofExpr(clang::QualType Type, clang::SourceLocation TypeidLoc, clang::TypeSourceInfo * Operand, clang::SourceLocation RParenLoc)
  • public clang::ExprResult RebuildCallExpr(clang::Expr * Callee, clang::SourceLocation LParenLoc, clang::MultiExprArg Args, clang::SourceLocation RParenLoc, clang::Expr * ExecConfig = nullptr)
  • public clang::StmtResult RebuildCaseStmt(clang::SourceLocation CaseLoc, clang::Expr * LHS, clang::SourceLocation EllipsisLoc, clang::Expr * RHS, clang::SourceLocation ColonLoc)
  • public clang::StmtResult RebuildCaseStmtBody(clang::Stmt * S, clang::Stmt * Body)
  • public clang::ExprResult RebuildChooseExpr(clang::SourceLocation BuiltinLoc, clang::Expr * Cond, clang::Expr * LHS, clang::Expr * RHS, clang::SourceLocation RParenLoc)
  • public clang::ExprResult RebuildCoawaitExpr(clang::SourceLocation CoawaitLoc, clang::Expr * Operand, clang::UnresolvedLookupExpr * OpCoawaitLookup, bool IsImplicit)
  • public clang::ExprResult RebuildCompoundLiteralExpr(clang::SourceLocation LParenLoc, clang::TypeSourceInfo * TInfo, clang::SourceLocation RParenLoc, clang::Expr * Init)
  • public clang::StmtResult RebuildCompoundStmt(clang::SourceLocation LBraceLoc, clang::MultiStmtArg Statements, clang::SourceLocation RBraceLoc, bool IsStmtExpr)
  • public clang::ExprResult RebuildConceptSpecializationExpr(clang::NestedNameSpecifierLoc NNS, clang::SourceLocation TemplateKWLoc, clang::DeclarationNameInfo ConceptNameInfo, clang::NamedDecl * FoundDecl, clang::ConceptDecl * NamedConcept, clang::TemplateArgumentListInfo * TALI)
  • public clang::ExprResult RebuildConditionalOperator(clang::Expr * Cond, clang::SourceLocation QuestionLoc, clang::Expr * LHS, clang::SourceLocation ColonLoc, clang::Expr * RHS)
  • public clang::QualType RebuildConstantArrayType(clang::QualType ElementType, ArrayType::ArraySizeModifier SizeMod, const llvm::APInt & Size, clang::Expr * SizeExpr, unsigned int IndexTypeQuals, clang::SourceRange BracketsRange)
  • public clang::QualType RebuildConstantMatrixType(clang::QualType ElementType, unsigned int NumRows, unsigned int NumColumns)
  • public clang::ExprResult RebuildConvertVectorExpr(clang::SourceLocation BuiltinLoc, clang::Expr * SrcExpr, clang::TypeSourceInfo * DstTInfo, clang::SourceLocation RParenLoc)
  • public clang::StmtResult RebuildCoreturnStmt(clang::SourceLocation CoreturnLoc, clang::Expr * Result, bool IsImplicit)
  • public clang::StmtResult RebuildCoroutineBodyStmt(CoroutineBodyStmt::CtorArgs Args)
  • public clang::ExprResult RebuildCoyieldExpr(clang::SourceLocation CoyieldLoc, clang::Expr * Result)
  • public clang::ExprResult RebuildCxxSubscriptExpr(clang::Expr * Callee, clang::SourceLocation LParenLoc, clang::MultiExprArg Args, clang::SourceLocation RParenLoc)
  • public clang::ExprResult RebuildDeclRefExpr(clang::NestedNameSpecifierLoc QualifierLoc, clang::ValueDecl * VD, const clang::DeclarationNameInfo & NameInfo, clang::NamedDecl * Found, clang::TemplateArgumentListInfo * TemplateArgs)
  • public clang::StmtResult RebuildDeclStmt(MutableArrayRef<clang::Decl *> Decls, clang::SourceLocation StartLoc, clang::SourceLocation EndLoc)
  • public clang::ExprResult RebuildDeclarationNameExpr(const clang::CXXScopeSpec & SS, clang::LookupResult & R, bool RequiresADL)
  • public clang::QualType RebuildDecltypeType(clang::Expr * Underlying, clang::SourceLocation Loc)
  • public clang::QualType RebuildDeducedTemplateSpecializationType(clang::TemplateName Template, clang::QualType Deduced)
  • public clang::StmtResult RebuildDefaultStmt(clang::SourceLocation DefaultLoc, clang::SourceLocation ColonLoc, clang::Stmt * SubStmt)
  • public clang::QualType RebuildDependentAddressSpaceType(clang::QualType PointeeType, clang::Expr * AddrSpaceExpr, clang::SourceLocation AttributeLoc)
  • public clang::QualType RebuildDependentBitIntType(bool IsUnsigned, clang::Expr * NumBitsExpr, clang::SourceLocation Loc)
  • public clang::ExprResult RebuildDependentCoawaitExpr(clang::SourceLocation CoawaitLoc, clang::Expr * Result, clang::UnresolvedLookupExpr * Lookup)
  • public clang::QualType RebuildDependentNameType(clang::ElaboratedTypeKeyword Keyword, clang::SourceLocation KeywordLoc, clang::NestedNameSpecifierLoc QualifierLoc, const clang::IdentifierInfo * Id, clang::SourceLocation IdLoc, bool DeducedTSTContext)
  • public clang::ExprResult RebuildDependentScopeDeclRefExpr(clang::NestedNameSpecifierLoc QualifierLoc, clang::SourceLocation TemplateKWLoc, const clang::DeclarationNameInfo & NameInfo, const clang::TemplateArgumentListInfo * TemplateArgs, bool IsAddressOfOperand, clang::TypeSourceInfo ** RecoveryTSI)
  • public clang::QualType RebuildDependentSizedArrayType(clang::QualType ElementType, ArrayType::ArraySizeModifier SizeMod, clang::Expr * SizeExpr, unsigned int IndexTypeQuals, clang::SourceRange BracketsRange)
  • public clang::QualType RebuildDependentSizedExtVectorType(clang::QualType ElementType, clang::Expr * SizeExpr, clang::SourceLocation AttributeLoc)
  • public clang::QualType RebuildDependentSizedMatrixType(clang::QualType ElementType, clang::Expr * RowExpr, clang::Expr * ColumnExpr, clang::SourceLocation AttributeLoc)
  • public clang::QualType RebuildDependentTemplateSpecializationType(clang::ElaboratedTypeKeyword Keyword, clang::NestedNameSpecifierLoc QualifierLoc, clang::SourceLocation TemplateKWLoc, const clang::IdentifierInfo * Name, clang::SourceLocation NameLoc, clang::TemplateArgumentListInfo & Args, bool AllowInjectedClassName)
  • public clang::QualType RebuildDependentVectorType(clang::QualType ElementType, clang::Expr * SizeExpr, clang::SourceLocation AttributeLoc, VectorType::VectorKind)
  • public clang::ExprResult RebuildDesignatedInitExpr(clang::Designation & Desig, clang::MultiExprArg ArrayExprs, clang::SourceLocation EqualOrColonLoc, bool GNUSyntax, clang::Expr * Init)
  • public clang::StmtResult RebuildDoStmt(clang::SourceLocation DoLoc, clang::Stmt * Body, clang::SourceLocation WhileLoc, clang::SourceLocation LParenLoc, clang::Expr * Cond, clang::SourceLocation RParenLoc)
  • public clang::QualType RebuildElaboratedType(clang::SourceLocation KeywordLoc, clang::ElaboratedTypeKeyword Keyword, clang::NestedNameSpecifierLoc QualifierLoc, clang::QualType Named)
  • public clang::ExprResult RebuildEmptyCXXFoldExpr(clang::SourceLocation EllipsisLoc, clang::BinaryOperatorKind Operator)
  • public clang::QualType RebuildEnumType(clang::EnumDecl * Enum)
  • public clang::VarDecl * RebuildExceptionDecl(clang::VarDecl * ExceptionDecl, clang::TypeSourceInfo * Declarator, clang::SourceLocation StartLoc, clang::SourceLocation IdLoc, clang::IdentifierInfo * Id)
  • public concepts::ExprRequirement * RebuildExprRequirement(concepts::Requirement::SubstitutionDiagnostic * SubstDiag, bool IsSimple, clang::SourceLocation NoexceptLoc, concepts::ExprRequirement::ReturnTypeRequirement Ret)
  • public concepts::ExprRequirement * RebuildExprRequirement(clang::Expr * E, bool IsSimple, clang::SourceLocation NoexceptLoc, concepts::ExprRequirement::ReturnTypeRequirement Ret)
  • public clang::ExprResult RebuildExpressionTrait(clang::ExpressionTrait Trait, clang::SourceLocation StartLoc, clang::Expr * Queried, clang::SourceLocation RParenLoc)
  • public clang::ExprResult RebuildExtVectorElementExpr(clang::Expr * Base, clang::SourceLocation OpLoc, clang::SourceLocation AccessorLoc, clang::IdentifierInfo & Accessor)
  • public clang::QualType RebuildExtVectorType(clang::QualType ElementType, unsigned int NumElements, clang::SourceLocation AttributeLoc)
  • public clang::StmtResult RebuildForStmt(clang::SourceLocation ForLoc, clang::SourceLocation LParenLoc, clang::Stmt * Init, Sema::ConditionResult Cond, Sema::FullExprArg Inc, clang::SourceLocation RParenLoc, clang::Stmt * Body)
  • public clang::QualType RebuildFunctionNoProtoType(clang::QualType ResultType)
  • public clang::QualType RebuildFunctionProtoType(clang::QualType T, MutableArrayRef<clang::QualType> ParamTypes, const FunctionProtoType::ExtProtoInfo & EPI)
  • public clang::StmtResult RebuildGCCAsmStmt(clang::SourceLocation AsmLoc, bool IsSimple, bool IsVolatile, unsigned int NumOutputs, unsigned int NumInputs, clang::IdentifierInfo ** Names, clang::MultiExprArg Constraints, clang::MultiExprArg Exprs, clang::Expr * AsmString, clang::MultiExprArg Clobbers, unsigned int NumLabels, clang::SourceLocation RParenLoc)
  • public clang::ExprResult RebuildGenericSelectionExpr(clang::SourceLocation KeyLoc, clang::SourceLocation DefaultLoc, clang::SourceLocation RParenLoc, clang::Expr * ControllingExpr, ArrayRef<clang::TypeSourceInfo *> Types, ArrayRef<clang::Expr *> Exprs)
  • public clang::StmtResult RebuildGotoStmt(clang::SourceLocation GotoLoc, clang::SourceLocation LabelLoc, clang::LabelDecl * Label)
  • public clang::StmtResult RebuildIfStmt(clang::SourceLocation IfLoc, clang::IfStatementKind Kind, clang::SourceLocation LParenLoc, Sema::ConditionResult Cond, clang::SourceLocation RParenLoc, clang::Stmt * Init, clang::Stmt * Then, clang::SourceLocation ElseLoc, clang::Stmt * Else)
  • public clang::ExprResult RebuildImplicitValueInitExpr(clang::QualType T)
  • public clang::QualType RebuildIncompleteArrayType(clang::QualType ElementType, ArrayType::ArraySizeModifier SizeMod, unsigned int IndexTypeQuals, clang::SourceRange BracketsRange)
  • public clang::StmtResult RebuildIndirectGotoStmt(clang::SourceLocation GotoLoc, clang::SourceLocation StarLoc, clang::Expr * Target)
  • public clang::ExprResult RebuildInitList(clang::SourceLocation LBraceLoc, clang::MultiExprArg Inits, clang::SourceLocation RBraceLoc)
  • public clang::StmtResult RebuildLabelStmt(clang::SourceLocation IdentLoc, clang::LabelDecl * L, clang::SourceLocation ColonLoc, clang::Stmt * SubStmt)
  • public clang::StmtResult RebuildMSAsmStmt(clang::SourceLocation AsmLoc, clang::SourceLocation LBraceLoc, ArrayRef<clang::Token> AsmToks, llvm::StringRef AsmString, unsigned int NumOutputs, unsigned int NumInputs, ArrayRef<llvm::StringRef> Constraints, ArrayRef<llvm::StringRef> Clobbers, ArrayRef<clang::Expr *> Exprs, clang::SourceLocation EndLoc)
  • public clang::StmtResult RebuildMSDependentExistsStmt(clang::SourceLocation KeywordLoc, bool IsIfExists, clang::NestedNameSpecifierLoc QualifierLoc, clang::DeclarationNameInfo NameInfo, clang::Stmt * Nested)
  • public clang::QualType RebuildMacroQualifiedType(clang::QualType T, const clang::IdentifierInfo * MacroII)
  • public clang::ExprResult RebuildMatrixSubscriptExpr(clang::Expr * Base, clang::Expr * RowIdx, clang::Expr * ColumnIdx, clang::SourceLocation RBracketLoc)
  • public clang::ExprResult RebuildMemberExpr(clang::Expr * Base, clang::SourceLocation OpLoc, bool isArrow, clang::NestedNameSpecifierLoc QualifierLoc, clang::SourceLocation TemplateKWLoc, const clang::DeclarationNameInfo & MemberNameInfo, clang::ValueDecl * Member, clang::NamedDecl * FoundDecl, const clang::TemplateArgumentListInfo * ExplicitTemplateArgs, clang::NamedDecl * FirstQualifierInScope)
  • public clang::QualType RebuildMemberPointerType(clang::QualType PointeeType, clang::QualType ClassType, clang::SourceLocation Sigil)
  • public concepts::NestedRequirement * RebuildNestedRequirement(concepts::Requirement::SubstitutionDiagnostic * SubstDiag)
  • public concepts::NestedRequirement * RebuildNestedRequirement(clang::Expr * Constraint)
  • public clang::OMPClause * RebuildOMPAffinityClause(clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation ColonLoc, clang::SourceLocation EndLoc, clang::Expr * Modifier, ArrayRef<clang::Expr *> Locators)
  • public clang::OMPClause * RebuildOMPAlignClause(clang::Expr * A, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation EndLoc)
  • public clang::OMPClause * RebuildOMPAlignedClause(ArrayRef<clang::Expr *> VarList, clang::Expr * Alignment, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation ColonLoc, clang::SourceLocation EndLoc)
  • public clang::OMPClause * RebuildOMPAllocateClause(clang::Expr * Allocate, ArrayRef<clang::Expr *> VarList, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation ColonLoc, clang::SourceLocation EndLoc)
  • public clang::OMPClause * RebuildOMPAllocatorClause(clang::Expr * A, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation EndLoc)
  • public clang::ExprResult RebuildOMPArraySectionExpr(clang::Expr * Base, clang::SourceLocation LBracketLoc, clang::Expr * LowerBound, clang::SourceLocation ColonLocFirst, clang::SourceLocation ColonLocSecond, clang::Expr * Length, clang::Expr * Stride, clang::SourceLocation RBracketLoc)
  • public clang::ExprResult RebuildOMPArrayShapingExpr(clang::Expr * Base, clang::SourceLocation LParenLoc, clang::SourceLocation RParenLoc, ArrayRef<clang::Expr *> Dims, ArrayRef<clang::SourceRange> BracketsRanges)
  • public clang::OMPClause * RebuildOMPBindClause(clang::OpenMPBindClauseKind Kind, clang::SourceLocation KindLoc, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation EndLoc)
  • public clang::StmtResult RebuildOMPCanonicalLoop(clang::Stmt * LoopStmt)
  • public clang::OMPClause * RebuildOMPCollapseClause(clang::Expr * Num, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation EndLoc)
  • public clang::OMPClause * RebuildOMPCopyinClause(ArrayRef<clang::Expr *> VarList, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation EndLoc)
  • public clang::OMPClause * RebuildOMPCopyprivateClause(ArrayRef<clang::Expr *> VarList, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation EndLoc)
  • public clang::OMPClause * RebuildOMPDefaultClause(llvm::omp::DefaultKind Kind, clang::SourceLocation KindKwLoc, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation EndLoc)
  • public clang::OMPClause * RebuildOMPDefaultmapClause(clang::OpenMPDefaultmapClauseModifier M, clang::OpenMPDefaultmapClauseKind Kind, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation MLoc, clang::SourceLocation KindLoc, clang::SourceLocation EndLoc)
  • public clang::OMPClause * RebuildOMPDependClause(OMPDependClause::DependDataTy Data, clang::Expr * DepModifier, ArrayRef<clang::Expr *> VarList, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation EndLoc)
  • public clang::OMPClause * RebuildOMPDepobjClause(clang::Expr * Depobj, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation EndLoc)
  • public clang::OMPClause * RebuildOMPDestroyClause(clang::Expr * InteropVar, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation VarLoc, clang::SourceLocation EndLoc)
  • public clang::OMPClause * RebuildOMPDetachClause(clang::Expr * Evt, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation EndLoc)
  • public clang::OMPClause * RebuildOMPDeviceClause(clang::OpenMPDeviceClauseModifier Modifier, clang::Expr * Device, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation ModifierLoc, clang::SourceLocation EndLoc)
  • public clang::OMPClause * RebuildOMPDistScheduleClause(clang::OpenMPDistScheduleClauseKind Kind, clang::Expr * ChunkSize, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation KindLoc, clang::SourceLocation CommaLoc, clang::SourceLocation EndLoc)
  • public clang::OMPClause * RebuildOMPExclusiveClause(ArrayRef<clang::Expr *> VarList, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation EndLoc)
  • public clang::StmtResult RebuildOMPExecutableDirective(clang::OpenMPDirectiveKind Kind, clang::DeclarationNameInfo DirName, clang::OpenMPDirectiveKind CancelRegion, ArrayRef<clang::OMPClause *> Clauses, clang::Stmt * AStmt, clang::SourceLocation StartLoc, clang::SourceLocation EndLoc)
  • public clang::OMPClause * RebuildOMPFilterClause(clang::Expr * ThreadID, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation EndLoc)
  • public clang::OMPClause * RebuildOMPFinalClause(clang::Expr * Condition, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation EndLoc)
  • public clang::OMPClause * RebuildOMPFirstprivateClause(ArrayRef<clang::Expr *> VarList, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation EndLoc)
  • public clang::OMPClause * RebuildOMPFlushClause(ArrayRef<clang::Expr *> VarList, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation EndLoc)
  • public clang::OMPClause * RebuildOMPFromClause(ArrayRef<clang::OpenMPMotionModifierKind> MotionModifiers, ArrayRef<clang::SourceLocation> MotionModifiersLoc, clang::CXXScopeSpec & MapperIdScopeSpec, clang::DeclarationNameInfo & MapperId, clang::SourceLocation ColonLoc, ArrayRef<clang::Expr *> VarList, const clang::OMPVarListLocTy & Locs, ArrayRef<clang::Expr *> UnresolvedMappers)
  • public clang::OMPClause * RebuildOMPFullClause(clang::SourceLocation StartLoc, clang::SourceLocation EndLoc)
  • public clang::OMPClause * RebuildOMPGrainsizeClause(clang::Expr * Grainsize, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation EndLoc)
  • public clang::OMPClause * RebuildOMPHasDeviceAddrClause(ArrayRef<clang::Expr *> VarList, const clang::OMPVarListLocTy & Locs)
  • public clang::OMPClause * RebuildOMPHintClause(clang::Expr * Hint, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation EndLoc)
  • public clang::OMPClause * RebuildOMPIfClause(clang::OpenMPDirectiveKind NameModifier, clang::Expr * Condition, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation NameModifierLoc, clang::SourceLocation ColonLoc, clang::SourceLocation EndLoc)
  • public clang::OMPClause * RebuildOMPInReductionClause(ArrayRef<clang::Expr *> VarList, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation ColonLoc, clang::SourceLocation EndLoc, clang::CXXScopeSpec & ReductionIdScopeSpec, const clang::DeclarationNameInfo & ReductionId, ArrayRef<clang::Expr *> UnresolvedReductions)
  • public clang::OMPClause * RebuildOMPInclusiveClause(ArrayRef<clang::Expr *> VarList, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation EndLoc)
  • public clang::OMPClause * RebuildOMPInitClause(clang::Expr * InteropVar, ArrayRef<clang::Expr *> PrefExprs, bool IsTarget, bool IsTargetSync, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation VarLoc, clang::SourceLocation EndLoc)
  • public clang::OMPClause * RebuildOMPIsDevicePtrClause(ArrayRef<clang::Expr *> VarList, const clang::OMPVarListLocTy & Locs)
  • public clang::ExprResult RebuildOMPIteratorExpr(clang::SourceLocation IteratorKwLoc, clang::SourceLocation LLoc, clang::SourceLocation RLoc, ArrayRef<Sema::OMPIteratorData> Data)
  • public clang::OMPClause * RebuildOMPLastprivateClause(ArrayRef<clang::Expr *> VarList, clang::OpenMPLastprivateModifier LPKind, clang::SourceLocation LPKindLoc, clang::SourceLocation ColonLoc, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation EndLoc)
  • public clang::OMPClause * RebuildOMPLinearClause(ArrayRef<clang::Expr *> VarList, clang::Expr * Step, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::OpenMPLinearClauseKind Modifier, clang::SourceLocation ModifierLoc, clang::SourceLocation ColonLoc, clang::SourceLocation EndLoc)
  • public clang::OMPClause * RebuildOMPMapClause(ArrayRef<clang::OpenMPMapModifierKind> MapTypeModifiers, ArrayRef<clang::SourceLocation> MapTypeModifiersLoc, clang::CXXScopeSpec MapperIdScopeSpec, clang::DeclarationNameInfo MapperId, clang::OpenMPMapClauseKind MapType, bool IsMapTypeImplicit, clang::SourceLocation MapLoc, clang::SourceLocation ColonLoc, ArrayRef<clang::Expr *> VarList, const clang::OMPVarListLocTy & Locs, ArrayRef<clang::Expr *> UnresolvedMappers)
  • public clang::OMPClause * RebuildOMPNocontextClause(clang::Expr * Condition, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation EndLoc)
  • public clang::OMPClause * RebuildOMPNontemporalClause(ArrayRef<clang::Expr *> VarList, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation EndLoc)
  • public clang::OMPClause * RebuildOMPNovariantsClause(clang::Expr * Condition, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation EndLoc)
  • public clang::OMPClause * RebuildOMPNumTasksClause(clang::Expr * NumTasks, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation EndLoc)
  • public clang::OMPClause * RebuildOMPNumTeamsClause(clang::Expr * NumTeams, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation EndLoc)
  • public clang::OMPClause * RebuildOMPNumThreadsClause(clang::Expr * NumThreads, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation EndLoc)
  • public clang::OMPClause * RebuildOMPOrderClause(clang::OpenMPOrderClauseKind Kind, clang::SourceLocation KindKwLoc, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation EndLoc)
  • public clang::OMPClause * RebuildOMPOrderedClause(clang::SourceLocation StartLoc, clang::SourceLocation EndLoc, clang::SourceLocation LParenLoc, clang::Expr * Num)
  • public clang::OMPClause * RebuildOMPPartialClause(clang::Expr * Factor, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation EndLoc)
  • public clang::OMPClause * RebuildOMPPriorityClause(clang::Expr * Priority, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation EndLoc)
  • public clang::OMPClause * RebuildOMPPrivateClause(ArrayRef<clang::Expr *> VarList, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation EndLoc)
  • public clang::OMPClause * RebuildOMPProcBindClause(llvm::omp::ProcBindKind Kind, clang::SourceLocation KindKwLoc, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation EndLoc)
  • public clang::OMPClause * RebuildOMPReductionClause(ArrayRef<clang::Expr *> VarList, clang::OpenMPReductionClauseModifier Modifier, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation ModifierLoc, clang::SourceLocation ColonLoc, clang::SourceLocation EndLoc, clang::CXXScopeSpec & ReductionIdScopeSpec, const clang::DeclarationNameInfo & ReductionId, ArrayRef<clang::Expr *> UnresolvedReductions)
  • public clang::OMPClause * RebuildOMPSafelenClause(clang::Expr * Len, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation EndLoc)
  • public clang::OMPClause * RebuildOMPScheduleClause(clang::OpenMPScheduleClauseModifier M1, clang::OpenMPScheduleClauseModifier M2, clang::OpenMPScheduleClauseKind Kind, clang::Expr * ChunkSize, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation M1Loc, clang::SourceLocation M2Loc, clang::SourceLocation KindLoc, clang::SourceLocation CommaLoc, clang::SourceLocation EndLoc)
  • public clang::OMPClause * RebuildOMPSharedClause(ArrayRef<clang::Expr *> VarList, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation EndLoc)
  • public clang::OMPClause * RebuildOMPSimdlenClause(clang::Expr * Len, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation EndLoc)
  • public clang::OMPClause * RebuildOMPSizesClause(ArrayRef<clang::Expr *> Sizes, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation EndLoc)
  • public clang::OMPClause * RebuildOMPTaskReductionClause(ArrayRef<clang::Expr *> VarList, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation ColonLoc, clang::SourceLocation EndLoc, clang::CXXScopeSpec & ReductionIdScopeSpec, const clang::DeclarationNameInfo & ReductionId, ArrayRef<clang::Expr *> UnresolvedReductions)
  • public clang::OMPClause * RebuildOMPThreadLimitClause(clang::Expr * ThreadLimit, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation EndLoc)
  • public clang::OMPClause * RebuildOMPToClause(ArrayRef<clang::OpenMPMotionModifierKind> MotionModifiers, ArrayRef<clang::SourceLocation> MotionModifiersLoc, clang::CXXScopeSpec & MapperIdScopeSpec, clang::DeclarationNameInfo & MapperId, clang::SourceLocation ColonLoc, ArrayRef<clang::Expr *> VarList, const clang::OMPVarListLocTy & Locs, ArrayRef<clang::Expr *> UnresolvedMappers)
  • public clang::OMPClause * RebuildOMPUseClause(clang::Expr * InteropVar, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation VarLoc, clang::SourceLocation EndLoc)
  • public clang::OMPClause * RebuildOMPUseDeviceAddrClause(ArrayRef<clang::Expr *> VarList, const clang::OMPVarListLocTy & Locs)
  • public clang::OMPClause * RebuildOMPUseDevicePtrClause(ArrayRef<clang::Expr *> VarList, const clang::OMPVarListLocTy & Locs)
  • public clang::OMPClause * RebuildOMPUsesAllocatorsClause(ArrayRef<Sema::UsesAllocatorsData> Data, clang::SourceLocation StartLoc, clang::SourceLocation LParenLoc, clang::SourceLocation EndLoc)
  • public clang::ExprResult RebuildObjCArrayLiteral(clang::SourceRange Range, clang::Expr ** Elements, unsigned int NumElements)
  • public clang::StmtResult RebuildObjCAtCatchStmt(clang::SourceLocation AtLoc, clang::SourceLocation RParenLoc, clang::VarDecl * Var, clang::Stmt * Body)
  • public clang::StmtResult RebuildObjCAtFinallyStmt(clang::SourceLocation AtLoc, clang::Stmt * Body)
  • public clang::ExprResult RebuildObjCAtSynchronizedOperand(clang::SourceLocation atLoc, clang::Expr * object)
  • public clang::StmtResult RebuildObjCAtSynchronizedStmt(clang::SourceLocation AtLoc, clang::Expr * Object, clang::Stmt * Body)
  • public clang::StmtResult RebuildObjCAtThrowStmt(clang::SourceLocation AtLoc, clang::Expr * Operand)
  • public clang::StmtResult RebuildObjCAtTryStmt(clang::SourceLocation AtLoc, clang::Stmt * TryBody, clang::MultiStmtArg CatchStmts, clang::Stmt * Finally)
  • public clang::StmtResult RebuildObjCAutoreleasePoolStmt(clang::SourceLocation AtLoc, clang::Stmt * Body)
  • public clang::ExprResult RebuildObjCBoxedExpr(clang::SourceRange SR, clang::Expr * ValueExpr)
  • public clang::ExprResult RebuildObjCDictionaryLiteral(clang::SourceRange Range, MutableArrayRef<clang::ObjCDictionaryElement> Elements)
  • public clang::ExprResult RebuildObjCEncodeExpr(clang::SourceLocation AtLoc, clang::TypeSourceInfo * EncodeTypeInfo, clang::SourceLocation RParenLoc)
  • public clang::VarDecl * RebuildObjCExceptionDecl(clang::VarDecl * ExceptionDecl, clang::TypeSourceInfo * TInfo, clang::QualType T)
  • public clang::StmtResult RebuildObjCForCollectionStmt(clang::SourceLocation ForLoc, clang::Stmt * Element, clang::Expr * Collection, clang::SourceLocation RParenLoc, clang::Stmt * Body)
  • public clang::ExprResult RebuildObjCIsaExpr(clang::Expr * BaseArg, clang::SourceLocation IsaLoc, clang::SourceLocation OpLoc, bool IsArrow)
  • public clang::ExprResult RebuildObjCIvarRefExpr(clang::Expr * BaseArg, clang::ObjCIvarDecl * Ivar, clang::SourceLocation IvarLoc, bool IsArrow, bool IsFreeIvar)
  • public clang::ExprResult RebuildObjCMessageExpr(clang::TypeSourceInfo * ReceiverTypeInfo, clang::Selector Sel, ArrayRef<clang::SourceLocation> SelectorLocs, clang::ObjCMethodDecl * Method, clang::SourceLocation LBracLoc, clang::MultiExprArg Args, clang::SourceLocation RBracLoc)
  • public clang::ExprResult RebuildObjCMessageExpr(clang::Expr * Receiver, clang::Selector Sel, ArrayRef<clang::SourceLocation> SelectorLocs, clang::ObjCMethodDecl * Method, clang::SourceLocation LBracLoc, clang::MultiExprArg Args, clang::SourceLocation RBracLoc)
  • public clang::ExprResult RebuildObjCMessageExpr(clang::SourceLocation SuperLoc, clang::Selector Sel, ArrayRef<clang::SourceLocation> SelectorLocs, clang::QualType SuperType, clang::ObjCMethodDecl * Method, clang::SourceLocation LBracLoc, clang::MultiExprArg Args, clang::SourceLocation RBracLoc)
  • public clang::QualType RebuildObjCObjectPointerType(clang::QualType PointeeType, clang::SourceLocation Star)
  • public clang::QualType RebuildObjCObjectType(clang::QualType BaseType, clang::SourceLocation Loc, clang::SourceLocation TypeArgsLAngleLoc, ArrayRef<clang::TypeSourceInfo *> TypeArgs, clang::SourceLocation TypeArgsRAngleLoc, clang::SourceLocation ProtocolLAngleLoc, ArrayRef<clang::ObjCProtocolDecl *> Protocols, ArrayRef<clang::SourceLocation> ProtocolLocs, clang::SourceLocation ProtocolRAngleLoc)
  • public clang::ExprResult RebuildObjCPropertyRefExpr(clang::Expr * Base, clang::QualType T, clang::ObjCMethodDecl * Getter, clang::ObjCMethodDecl * Setter, clang::SourceLocation PropertyLoc)
  • public clang::ExprResult RebuildObjCPropertyRefExpr(clang::Expr * BaseArg, clang::ObjCPropertyDecl * Property, clang::SourceLocation PropertyLoc)
  • public clang::ExprResult RebuildObjCSubscriptRefExpr(clang::SourceLocation RB, clang::Expr * Base, clang::Expr * Key, clang::ObjCMethodDecl * getterMethod, clang::ObjCMethodDecl * setterMethod)
  • public clang::QualType RebuildObjCTypeParamType(const clang::ObjCTypeParamDecl * Decl, clang::SourceLocation ProtocolLAngleLoc, ArrayRef<clang::ObjCProtocolDecl *> Protocols, ArrayRef<clang::SourceLocation> ProtocolLocs, clang::SourceLocation ProtocolRAngleLoc)
  • public clang::ExprResult RebuildOffsetOfExpr(clang::SourceLocation OperatorLoc, clang::TypeSourceInfo * Type, ArrayRef<Sema::OffsetOfComponent> Components, clang::SourceLocation RParenLoc)
  • public clang::ExprResult RebuildPackExpansion(clang::Expr * Pattern, clang::SourceLocation EllipsisLoc, Optional<unsigned int> NumExpansions)
  • public clang::TemplateArgumentLoc RebuildPackExpansion(clang::TemplateArgumentLoc Pattern, clang::SourceLocation EllipsisLoc, Optional<unsigned int> NumExpansions)
  • public clang::QualType RebuildPackExpansionType(clang::QualType Pattern, clang::SourceRange PatternRange, clang::SourceLocation EllipsisLoc, Optional<unsigned int> NumExpansions)
  • public clang::ExprResult RebuildParenExpr(clang::Expr * SubExpr, clang::SourceLocation LParen, clang::SourceLocation RParen)
  • public clang::ExprResult RebuildParenListExpr(clang::SourceLocation LParenLoc, clang::MultiExprArg SubExprs, clang::SourceLocation RParenLoc)
  • public clang::QualType RebuildParenType(clang::QualType InnerType)
  • public clang::QualType RebuildPipeType(clang::QualType ValueType, clang::SourceLocation KWLoc, bool isReadPipe)
  • public clang::QualType RebuildPointerType(clang::QualType PointeeType, clang::SourceLocation Sigil)
  • public clang::ExprResult RebuildPredefinedExpr(clang::SourceLocation Loc, PredefinedExpr::IdentKind IK)
  • public clang::QualType RebuildQualifiedType(clang::QualType T, clang::QualifiedTypeLoc TL)
  • public clang::QualType RebuildRecordType(clang::RecordDecl * Record)
  • public clang::ExprResult RebuildRecoveryExpr(clang::SourceLocation BeginLoc, clang::SourceLocation EndLoc, ArrayRef<clang::Expr *> SubExprs, clang::QualType Type)
  • public clang::QualType RebuildReferenceType(clang::QualType ReferentType, bool LValue, clang::SourceLocation Sigil)
  • public clang::ExprResult RebuildRequiresExpr(clang::SourceLocation RequiresKWLoc, clang::RequiresExprBodyDecl * Body, ArrayRef<clang::ParmVarDecl *> LocalParameters, ArrayRef<concepts::Requirement *> Requirements, clang::SourceLocation ClosingBraceLoc)
  • public clang::StmtResult RebuildReturnStmt(clang::SourceLocation ReturnLoc, clang::Expr * Result)
  • public clang::StmtResult RebuildSEHExceptStmt(clang::SourceLocation Loc, clang::Expr * FilterExpr, clang::Stmt * Block)
  • public clang::StmtResult RebuildSEHFinallyStmt(clang::SourceLocation Loc, clang::Stmt * Block)
  • public clang::StmtResult RebuildSEHTryStmt(bool IsCXXTry, clang::SourceLocation TryLoc, clang::Stmt * TryBlock, clang::Stmt * Handler)
  • public clang::ExprResult RebuildSYCLUniqueStableNameExpr(clang::SourceLocation OpLoc, clang::SourceLocation LParen, clang::SourceLocation RParen, clang::TypeSourceInfo * TSI)
  • public clang::ExprResult RebuildShuffleVectorExpr(clang::SourceLocation BuiltinLoc, clang::MultiExprArg SubExprs, clang::SourceLocation RParenLoc)
  • public clang::ExprResult RebuildSizeOfPackExpr(clang::SourceLocation OperatorLoc, clang::NamedDecl * Pack, clang::SourceLocation PackLoc, clang::SourceLocation RParenLoc, Optional<unsigned int> Length, ArrayRef<clang::TemplateArgument> PartialArgs)
  • public clang::ExprResult RebuildSourceLocExpr(SourceLocExpr::IdentKind Kind, clang::QualType ResultTy, clang::SourceLocation BuiltinLoc, clang::SourceLocation RPLoc, clang::DeclContext * ParentContext)
  • public clang::ExprResult RebuildStmtExpr(clang::SourceLocation LParenLoc, clang::Stmt * SubStmt, clang::SourceLocation RParenLoc, unsigned int TemplateDepth)
  • public clang::StmtResult RebuildSwitchStmtBody(clang::SourceLocation SwitchLoc, clang::Stmt * Switch, clang::Stmt * Body)
  • public clang::StmtResult RebuildSwitchStmtStart(clang::SourceLocation SwitchLoc, clang::SourceLocation LParenLoc, clang::Stmt * Init, Sema::ConditionResult Cond, clang::SourceLocation RParenLoc)
  • public clang::ExprResult RebuildTemplateIdExpr(const clang::CXXScopeSpec & SS, clang::SourceLocation TemplateKWLoc, clang::LookupResult & R, bool RequiresADL, const clang::TemplateArgumentListInfo * TemplateArgs)
  • public clang::TemplateName RebuildTemplateName(clang::CXXScopeSpec & SS, clang::SourceLocation TemplateKWLoc, const clang::IdentifierInfo & Name, clang::SourceLocation NameLoc, clang::QualType ObjectType, clang::NamedDecl * FirstQualifierInScope, bool AllowInjectedClassName)
  • public clang::TemplateName RebuildTemplateName(clang::CXXScopeSpec & SS, clang::SourceLocation TemplateKWLoc, clang::OverloadedOperatorKind Operator, clang::SourceLocation NameLoc, clang::QualType ObjectType, bool AllowInjectedClassName)
  • public clang::TemplateName RebuildTemplateName(clang::TemplateTemplateParmDecl * Param, const clang::TemplateArgument & ArgPack)
  • public clang::TemplateName RebuildTemplateName(clang::CXXScopeSpec & SS, bool TemplateKW, clang::TemplateDecl * Template)
  • public clang::QualType RebuildTemplateSpecializationType(clang::TemplateName Template, clang::SourceLocation TemplateLoc, clang::TemplateArgumentListInfo & Args)
  • public clang::QualType RebuildTypeOfExprType(clang::Expr * Underlying, clang::SourceLocation Loc)
  • public clang::QualType RebuildTypeOfType(clang::QualType Underlying)
  • public concepts::TypeRequirement * RebuildTypeRequirement(concepts::Requirement::SubstitutionDiagnostic * SubstDiag)
  • public concepts::TypeRequirement * RebuildTypeRequirement(clang::TypeSourceInfo * T)
  • public clang::ExprResult RebuildTypeTrait(clang::TypeTrait Trait, clang::SourceLocation StartLoc, ArrayRef<clang::TypeSourceInfo *> Args, clang::SourceLocation RParenLoc)
  • public clang::QualType RebuildTypedefType(clang::TypedefNameDecl * Typedef)
  • public clang::ExprResult RebuildUnaryExprOrTypeTrait(clang::TypeSourceInfo * TInfo, clang::SourceLocation OpLoc, clang::UnaryExprOrTypeTrait ExprKind, clang::SourceRange R)
  • public clang::ExprResult RebuildUnaryExprOrTypeTrait(clang::Expr * SubExpr, clang::SourceLocation OpLoc, clang::UnaryExprOrTypeTrait ExprKind, clang::SourceRange R)
  • public clang::ExprResult RebuildUnaryOperator(clang::SourceLocation OpLoc, clang::UnaryOperatorKind Opc, clang::Expr * SubExpr)
  • public clang::QualType RebuildUnaryTransformType(clang::QualType BaseType, UnaryTransformType::UTTKind UKind, clang::SourceLocation Loc)
  • public clang::ExprResult RebuildUnresolvedMemberExpr(clang::Expr * BaseE, clang::QualType BaseType, clang::SourceLocation OperatorLoc, bool IsArrow, clang::NestedNameSpecifierLoc QualifierLoc, clang::SourceLocation TemplateKWLoc, clang::NamedDecl * FirstQualifierInScope, clang::LookupResult & R, const clang::TemplateArgumentListInfo * TemplateArgs)
  • public clang::QualType RebuildUnresolvedUsingType(clang::SourceLocation NameLoc, clang::Decl * D)
  • public clang::QualType RebuildUsingType(clang::UsingShadowDecl * Found, clang::QualType Underlying)
  • public clang::ExprResult RebuildVAArgExpr(clang::SourceLocation BuiltinLoc, clang::Expr * SubExpr, clang::TypeSourceInfo * TInfo, clang::SourceLocation RParenLoc)
  • public clang::QualType RebuildVariableArrayType(clang::QualType ElementType, ArrayType::ArraySizeModifier SizeMod, clang::Expr * SizeExpr, unsigned int IndexTypeQuals, clang::SourceRange BracketsRange)
  • public clang::QualType RebuildVectorType(clang::QualType ElementType, unsigned int NumElements, VectorType::VectorKind VecKind)
  • public clang::StmtResult RebuildWhileStmt(clang::SourceLocation WhileLoc, clang::SourceLocation LParenLoc, Sema::ConditionResult Cond, clang::SourceLocation RParenLoc, clang::Stmt * Body)
  • public void RememberPartiallySubstitutedPack(clang::TemplateArgument Arg)
  • public bool ReplacingOriginal()
  • public clang::StmtResult SkipLambdaBody(clang::LambdaExpr * E, clang::Stmt * Body)
  • public clang::ExprResult TransformAddressOfOperand(clang::Expr * E)
  • public const clang::Attr * TransformAttr(const clang::Attr * S)
  • public clang::ExprResult TransformCXXNamedCastExpr(clang::CXXNamedCastExpr * E)
  • public clang::StmtResult TransformCompoundStmt(clang::CompoundStmt * S, bool IsStmtExpr)
  • public Sema::ConditionResult TransformCondition(clang::SourceLocation Loc, clang::VarDecl * Var, clang::Expr * Expr, Sema::ConditionKind Kind)
  • public clang::Decl * TransformDecl(clang::SourceLocation Loc, clang::Decl * D)
  • public clang::DeclarationNameInfo TransformDeclarationNameInfo(const clang::DeclarationNameInfo & NameInfo)
  • public clang::Decl * TransformDefinition(clang::SourceLocation Loc, clang::Decl * D)
  • private clang::QualType TransformDependentNameType(clang::TypeLocBuilder & TLB, clang::DependentNameTypeLoc TL, bool DeducibleTSTContext)
  • public clang::ExprResult TransformDependentScopeDeclRefExpr(clang::DependentScopeDeclRefExpr * E, bool IsAddressOfOperand, clang::TypeSourceInfo ** RecoveryTSI)
  • public clang::QualType TransformDependentTemplateSpecializationType(clang::TypeLocBuilder & TLB, clang::DependentTemplateSpecializationTypeLoc TL, clang::TemplateName Template, clang::CXXScopeSpec & SS)
  • public clang::QualType TransformDependentTemplateSpecializationType(clang::TypeLocBuilder & TLB, clang::DependentTemplateSpecializationTypeLoc TL, clang::NestedNameSpecifierLoc QualifierLoc)
  • public bool TransformExceptionSpec(clang::SourceLocation Loc, FunctionProtoType::ExceptionSpecInfo & ESI, SmallVectorImpl<clang::QualType> & Exceptions, bool & Changed)
  • public clang::ExprResult TransformExpr(clang::Expr * E)
  • public concepts::ExprRequirement * TransformExprRequirement(concepts::ExprRequirement * Req)
  • public bool TransformExprs(clang::Expr *const * Inputs, unsigned int NumInputs, bool IsCall, SmallVectorImpl<clang::Expr *> & Outputs, bool * ArgChanged = nullptr)
  • public clang::NamedDecl * TransformFirstQualifierInScope(clang::NamedDecl * D, clang::SourceLocation Loc)
  • public template <typename Fn>clang::QualType TransformFunctionProtoType(clang::TypeLocBuilder & TLB, clang::FunctionProtoTypeLoc TL, clang::CXXRecordDecl * ThisContext, clang::Qualifiers ThisTypeQuals, Fn TransformExceptionSpec)
  • public clang::ParmVarDecl * TransformFunctionTypeParam(clang::ParmVarDecl * OldParm, int indexAdjustment, Optional<unsigned int> NumExpansions, bool ExpectParameterPack)
  • public bool TransformFunctionTypeParams(clang::SourceLocation Loc, ArrayRef<clang::ParmVarDecl *> Params, const clang::QualType * ParamTypes, const FunctionProtoType::ExtParameterInfo * ParamInfos, SmallVectorImpl<clang::QualType> & PTypes, SmallVectorImpl<clang::ParmVarDecl *> * PVars, Sema::ExtParameterInfoBuilder & PInfos)
  • public clang::ExprResult TransformInitializer(clang::Expr * Init, bool NotCopyInit)
  • public clang::StmtResult TransformLambdaBody(clang::LambdaExpr * E, clang::Stmt * Body)
  • public clang::NestedNameSpecifierLoc TransformNestedNameSpecifierLoc(clang::NestedNameSpecifierLoc NNS, clang::QualType ObjectType = clang::QualType(), clang::NamedDecl * FirstQualifierInScope = nullptr)
  • public concepts::NestedRequirement * TransformNestedRequirement(concepts::NestedRequirement * Req)
  • public clang::OMPClause * TransformOMPClause(clang::OMPClause * S)
  • public clang::StmtResult TransformOMPExecutableDirective(clang::OMPExecutableDirective * S)
  • public bool TransformOverloadExprDecls(clang::OverloadExpr * Old, bool RequiresADL, clang::LookupResult & R)
  • public clang::ExprResult TransformParenDependentScopeDeclRefExpr(clang::ParenExpr * PE, clang::DependentScopeDeclRefExpr * DRE, bool IsAddressOfOperand, clang::TypeSourceInfo ** RecoveryTSI)
  • public clang::QualType TransformReferenceType(clang::TypeLocBuilder & TLB, clang::ReferenceTypeLoc TL)
  • public bool TransformRequiresExprRequirements(ArrayRef<concepts::Requirement *> Reqs, llvm::SmallVectorImpl<concepts::Requirement *> & Transformed)
  • public clang::StmtResult TransformSEHHandler(clang::Stmt * Handler)
  • public clang::StmtResult TransformStmt(clang::Stmt * S, clang::TreeTransform::StmtDiscardKind SDK = SDK_Discarded)
  • private clang::TypeSourceInfo * TransformTSIInObjectScope(clang::TypeLoc TL, clang::QualType ObjectType, clang::NamedDecl * FirstQualifierInScope, clang::CXXScopeSpec & SS)
  • public bool TransformTemplateArgument(const clang::TemplateArgumentLoc & Input, clang::TemplateArgumentLoc & Output, bool Uneval = false)
  • public bool TransformTemplateArguments(const clang::TemplateArgumentLoc * Inputs, unsigned int NumInputs, clang::TemplateArgumentListInfo & Outputs, bool Uneval = false)
  • public template <typename InputIterator>bool TransformTemplateArguments(InputIterator First, InputIterator Last, clang::TemplateArgumentListInfo & Outputs, bool Uneval = false)
  • public unsigned int TransformTemplateDepth(unsigned int Depth)
  • public clang::TemplateName TransformTemplateName(clang::CXXScopeSpec & SS, clang::TemplateName Name, clang::SourceLocation NameLoc, clang::QualType ObjectType = clang::QualType(), clang::NamedDecl * FirstQualifierInScope = nullptr, bool AllowInjectedClassName = false)
  • public clang::TemplateParameterList * TransformTemplateParameterList(clang::TemplateParameterList * TPL)
  • public clang::QualType TransformTemplateSpecializationType(clang::TypeLocBuilder & TLB, clang::TemplateSpecializationTypeLoc TL, clang::TemplateName Template)
  • public clang::TypeSourceInfo * TransformType(clang::TypeSourceInfo * DI)
  • public clang::QualType TransformType(clang::QualType T)
  • public clang::QualType TransformType(clang::TypeLocBuilder & TLB, clang::TypeLoc TL)
  • private clang::TypeLoc TransformTypeInObjectScope(clang::TypeLoc TL, clang::QualType ObjectType, clang::NamedDecl * FirstQualifierInScope, clang::CXXScopeSpec & SS)
  • private clang::TypeSourceInfo * TransformTypeInObjectScope(clang::TypeSourceInfo * TSInfo, clang::QualType ObjectType, clang::NamedDecl * FirstQualifierInScope, clang::CXXScopeSpec & SS)
  • public concepts::TypeRequirement * TransformTypeRequirement(concepts::TypeRequirement * Req)
  • public clang::QualType TransformTypeWithDeducedTST(clang::QualType T)
  • public clang::TypeSourceInfo * TransformTypeWithDeducedTST(clang::TypeSourceInfo * DI)
  • public TreeTransform<Derived>(clang::Sema & SemaRef)
  • public bool TryExpandParameterPacks(clang::SourceLocation EllipsisLoc, clang::SourceRange PatternRange, ArrayRef<clang::UnexpandedParameterPack> Unexpanded, bool & ShouldExpand, bool & RetainExpansion, Optional<unsigned int> & NumExpansions)
  • public clang::DeclarationName getBaseEntity()
  • public clang::SourceLocation getBaseLocation()
  • public const Derived & getDerived() const
  • public Derived & getDerived()
  • public clang::Sema & getSema() const
  • public void setBase(clang::SourceLocation Loc, clang::DeclarationName Entity)
  • public void transformAttrs(clang::Decl * Old, clang::Decl * New)
  • public void transformedLocalDecl(clang::Decl * Old, ArrayRef<clang::Decl *> New)

Methods

bool AllowSkippingCXXConstructExpr()

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:167

bool AlreadyTransformed(clang::QualType T)

Description

Determine whether the given type \p 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.

Declared at: clang/lib/Sema/TreeTransform.h:220

Parameters

clang::QualType T

bool AlwaysRebuild()

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:155

bool DropCallArgument(clang::Expr* E)

Description

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).

Declared at: clang/lib/Sema/TreeTransform.h:238

Parameters

clang::Expr* E

void ExpandingFunctionParameterPack(
    clang::ParmVarDecl* Pack)

Description

Note to the derived class when a function parameter pack is being expanded.

Declared at: clang/lib/Sema/TreeTransform.h:307

Parameters

clang::ParmVarDecl* Pack

clang::StmtResult FinishCXXForRangeStmt(
    clang::Stmt* ForRange,
    clang::Stmt* Body)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2453

Parameters

clang::Stmt* ForRange
clang::Stmt* Body

clang::TemplateArgument
ForgetPartiallySubstitutedPack()

Description

"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.

Declared at: clang/lib/Sema/TreeTransform.h:294

void InventTemplateArgumentLoc(
    const clang::TemplateArgument& Arg,
    clang::TemplateArgumentLoc& ArgLoc)

Description

Fakes up a TemplateArgumentLoc for a given TemplateArgument.

Declared at: clang/lib/Sema/TreeTransform.h:625

Parameters

const clang::TemplateArgument& Arg
clang::TemplateArgumentLoc& ArgLoc

clang::TypeSourceInfo* InventTypeSourceInfo(
    clang::QualType T)

Description

Fakes up a TypeSourceInfo for a type.

Declared at: clang/lib/Sema/TreeTransform.h:629

Parameters

clang::QualType T

static inline clang::ExprResult Owned(
    clang::Expr* E)

Declared at: clang/lib/Sema/TreeTransform.h:139

Parameters

clang::Expr* E

static inline clang::StmtResult Owned(
    clang::Stmt* S)

Declared at: clang/lib/Sema/TreeTransform.h:140

Parameters

clang::Stmt* S

clang::ExprResult RebuildAddrLabelExpr(
    clang::SourceLocation AmpAmpLoc,
    clang::SourceLocation LabelLoc,
    clang::LabelDecl* Label)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2866

Parameters

clang::SourceLocation AmpAmpLoc
clang::SourceLocation LabelLoc
clang::LabelDecl* Label

clang::ExprResult RebuildArraySubscriptExpr(
    clang::Expr* LHS,
    clang::SourceLocation LBracketLoc,
    clang::Expr* RHS,
    clang::SourceLocation RBracketLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2589

Parameters

clang::Expr* LHS
clang::SourceLocation LBracketLoc
clang::Expr* RHS
clang::SourceLocation RBracketLoc

clang::QualType RebuildArrayType(
    clang::QualType ElementType,
    ArrayType::ArraySizeModifier SizeMod,
    const llvm::APInt* Size,
    clang::Expr* SizeExpr,
    unsigned int IndexTypeQuals,
    clang::SourceRange BracketsRange)

Description

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

Declared at: clang/lib/Sema/TreeTransform.h:814

Parameters

clang::QualType ElementType
ArrayType::ArraySizeModifier SizeMod
const llvm::APInt* Size
clang::Expr* SizeExpr
unsigned int IndexTypeQuals
clang::SourceRange BracketsRange

clang::ExprResult RebuildArrayTypeTrait(
    clang::ArrayTypeTrait Trait,
    clang::SourceLocation StartLoc,
    clang::TypeSourceInfo* TSInfo,
    clang::Expr* DimExpr,
    clang::SourceLocation RParenLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:3218

Parameters

clang::ArrayTypeTrait Trait
clang::SourceLocation StartLoc
clang::TypeSourceInfo* TSInfo
clang::Expr* DimExpr
clang::SourceLocation RParenLoc

clang::ExprResult RebuildAtomicExpr(
    clang::SourceLocation BuiltinLoc,
    clang::MultiExprArg SubExprs,
    AtomicExpr::AtomicOp Op,
    clang::SourceLocation RParenLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:3788

Parameters

clang::SourceLocation BuiltinLoc
clang::MultiExprArg SubExprs
AtomicExpr::AtomicOp Op
clang::SourceLocation RParenLoc

clang::QualType RebuildAtomicType(
    clang::QualType ValueType,
    clang::SourceLocation KWLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1197

Parameters

clang::QualType ValueType
clang::SourceLocation KWLoc

clang::StmtResult RebuildAttributedStmt(
    clang::SourceLocation AttrLoc,
    ArrayRef<const clang::Attr*> Attrs,
    clang::Stmt* SubStmt)

Description

Build a new attributed statement. By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.

Declared at: clang/lib/Sema/TreeTransform.h:1318

Parameters

clang::SourceLocation AttrLoc
ArrayRef<const clang::Attr*> Attrs
clang::Stmt* SubStmt

clang::QualType RebuildAutoType(
    clang::QualType Deduced,
    clang::AutoTypeKeyword Keyword,
    clang::ConceptDecl* TypeConstraintConcept,
    ArrayRef<clang::TemplateArgument>
        TypeConstraintArgs)

Description

Build a new C++11 auto type. By default, builds a new AutoType with the given deduced type.

Declared at: clang/lib/Sema/TreeTransform.h:987

Parameters

clang::QualType Deduced
clang::AutoTypeKeyword Keyword
clang::ConceptDecl* TypeConstraintConcept
ArrayRef<clang::TemplateArgument> TypeConstraintArgs

clang::ExprResult RebuildBinaryOperator(
    clang::SourceLocation OpLoc,
    clang::BinaryOperatorKind Opc,
    clang::Expr* LHS,
    clang::Expr* RHS)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2728

Parameters

clang::SourceLocation OpLoc
clang::BinaryOperatorKind Opc
clang::Expr* LHS
clang::Expr* RHS

clang::QualType RebuildBitIntType(
    bool IsUnsigned,
    unsigned int NumBits,
    clang::SourceLocation Loc)

Description

Build a bit-precise int given its value type.

Declared at: clang/lib/Sema/TreeTransform.h:1204

Parameters

bool IsUnsigned
unsigned int NumBits
clang::SourceLocation Loc

clang::QualType RebuildBlockPointerType(
    clang::QualType PointeeType,
    clang::SourceLocation Sigil)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:758

Parameters

clang::QualType PointeeType
clang::SourceLocation Sigil

clang::ExprResult RebuildBuiltinBitCastExpr(
    clang::SourceLocation KWLoc,
    clang::TypeSourceInfo* TSI,
    clang::Expr* Sub,
    clang::SourceLocation RParenLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:3062

Parameters

clang::SourceLocation KWLoc
clang::TypeSourceInfo* TSI
clang::Expr* Sub
clang::SourceLocation RParenLoc

clang::ExprResult RebuildCStyleCastExpr(
    clang::SourceLocation LParenLoc,
    clang::TypeSourceInfo* TInfo,
    clang::SourceLocation RParenLoc,
    clang::Expr* SubExpr)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2762

Parameters

clang::SourceLocation LParenLoc
clang::TypeSourceInfo* TInfo
clang::SourceLocation RParenLoc
clang::Expr* SubExpr

clang::ExprResult RebuildCXXAddrspaceCastExpr(
    clang::SourceLocation OpLoc,
    clang::SourceLocation LAngleLoc,
    clang::TypeSourceInfo* TInfo,
    clang::SourceLocation RAngleLoc,
    clang::SourceLocation LParenLoc,
    clang::Expr* SubExpr,
    clang::SourceLocation RParenLoc)

Declared at: clang/lib/Sema/TreeTransform.h:3035

Parameters

clang::SourceLocation OpLoc
clang::SourceLocation LAngleLoc
clang::TypeSourceInfo* TInfo
clang::SourceLocation RAngleLoc
clang::SourceLocation LParenLoc
clang::Expr* SubExpr
clang::SourceLocation RParenLoc

clang::StmtResult RebuildCXXCatchStmt(
    clang::SourceLocation CatchLoc,
    clang::VarDecl* ExceptionDecl,
    clang::Stmt* Handler)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2380

Parameters

clang::SourceLocation CatchLoc
clang::VarDecl* ExceptionDecl
clang::Stmt* Handler

clang::ExprResult RebuildCXXConstCastExpr(
    clang::SourceLocation OpLoc,
    clang::SourceLocation LAngleLoc,
    clang::TypeSourceInfo* TInfo,
    clang::SourceLocation RAngleLoc,
    clang::SourceLocation LParenLoc,
    clang::Expr* SubExpr,
    clang::SourceLocation RParenLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:3021

Parameters

clang::SourceLocation OpLoc
clang::SourceLocation LAngleLoc
clang::TypeSourceInfo* TInfo
clang::SourceLocation RAngleLoc
clang::SourceLocation LParenLoc
clang::Expr* SubExpr
clang::SourceLocation RParenLoc

clang::ExprResult RebuildCXXConstructExpr(
    clang::QualType T,
    clang::SourceLocation Loc,
    clang::CXXConstructorDecl* Constructor,
    bool IsElidable,
    clang::MultiExprArg Args,
    bool HadMultipleCandidates,
    bool ListInitialization,
    bool StdInitListInitialization,
    bool RequiresZeroInit,
    CXXConstructExpr::ConstructionKind
        ConstructKind,
    clang::SourceRange ParenRange)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:3277

Parameters

clang::QualType T
clang::SourceLocation Loc
clang::CXXConstructorDecl* Constructor
bool IsElidable
clang::MultiExprArg Args
bool HadMultipleCandidates
bool ListInitialization
bool StdInitListInitialization
bool RequiresZeroInit
CXXConstructExpr::ConstructionKind ConstructKind
clang::SourceRange ParenRange

clang::ExprResult RebuildCXXDefaultArgExpr(
    clang::SourceLocation Loc,
    clang::ParmVarDecl* Param)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:3137

Parameters

clang::SourceLocation Loc
clang::ParmVarDecl* Param

clang::ExprResult RebuildCXXDefaultInitExpr(
    clang::SourceLocation Loc,
    clang::FieldDecl* Field)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:3147

Parameters

clang::SourceLocation Loc
clang::FieldDecl* Field

clang::ExprResult RebuildCXXDeleteExpr(
    clang::SourceLocation StartLoc,
    bool IsGlobalDelete,
    bool IsArrayForm,
    clang::Expr* Operand)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:3195

Parameters

clang::SourceLocation StartLoc
bool IsGlobalDelete
bool IsArrayForm
clang::Expr* Operand

clang::ExprResult
RebuildCXXDependentScopeMemberExpr(
    clang::Expr* BaseE,
    clang::QualType BaseType,
    bool IsArrow,
    clang::SourceLocation OperatorLoc,
    clang::NestedNameSpecifierLoc QualifierLoc,
    clang::SourceLocation TemplateKWLoc,
    clang::NamedDecl* FirstQualifierInScope,
    const clang::DeclarationNameInfo&
        MemberNameInfo,
    const clang::TemplateArgumentListInfo*
        TemplateArgs)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:3349

Parameters

clang::Expr* BaseE
clang::QualType BaseType
bool IsArrow
clang::SourceLocation OperatorLoc
clang::NestedNameSpecifierLoc QualifierLoc
clang::SourceLocation TemplateKWLoc
clang::NamedDecl* FirstQualifierInScope
const clang::DeclarationNameInfo& MemberNameInfo
const clang::TemplateArgumentListInfo* TemplateArgs

clang::ExprResult RebuildCXXDynamicCastExpr(
    clang::SourceLocation OpLoc,
    clang::SourceLocation LAngleLoc,
    clang::TypeSourceInfo* TInfo,
    clang::SourceLocation RAngleLoc,
    clang::SourceLocation LParenLoc,
    clang::Expr* SubExpr,
    clang::SourceLocation RParenLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2987

Parameters

clang::SourceLocation OpLoc
clang::SourceLocation LAngleLoc
clang::TypeSourceInfo* TInfo
clang::SourceLocation RAngleLoc
clang::SourceLocation LParenLoc
clang::Expr* SubExpr
clang::SourceLocation RParenLoc

clang::ExprResult RebuildCXXFoldExpr(
    clang::UnresolvedLookupExpr* ULE,
    clang::SourceLocation LParenLoc,
    clang::Expr* LHS,
    clang::BinaryOperatorKind Operator,
    clang::SourceLocation EllipsisLoc,
    clang::Expr* RHS,
    clang::SourceLocation RParenLoc,
    Optional<unsigned int> NumExpansions)

Description

Build a new C++1z fold-expression. By default, performs semantic analysis in order to build a new fold expression.

Declared at: clang/lib/Sema/TreeTransform.h:3764

Parameters

clang::UnresolvedLookupExpr* ULE
clang::SourceLocation LParenLoc
clang::Expr* LHS
clang::BinaryOperatorKind Operator
clang::SourceLocation EllipsisLoc
clang::Expr* RHS
clang::SourceLocation RParenLoc
Optional<unsigned int> NumExpansions

clang::StmtResult RebuildCXXForRangeStmt(
    clang::SourceLocation ForLoc,
    clang::SourceLocation CoawaitLoc,
    clang::Stmt* Init,
    clang::SourceLocation ColonLoc,
    clang::Stmt* Range,
    clang::Stmt* Begin,
    clang::Stmt* End,
    clang::Expr* Cond,
    clang::Expr* Inc,
    clang::Stmt* LoopVar,
    clang::SourceLocation RParenLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2400

Parameters

clang::SourceLocation ForLoc
clang::SourceLocation CoawaitLoc
clang::Stmt* Init
clang::SourceLocation ColonLoc
clang::Stmt* Range
clang::Stmt* Begin
clang::Stmt* End
clang::Expr* Cond
clang::Expr* Inc
clang::Stmt* LoopVar
clang::SourceLocation RParenLoc

clang::ExprResult RebuildCXXFunctionalCastExpr(
    clang::TypeSourceInfo* TInfo,
    clang::SourceLocation LParenLoc,
    clang::Expr* Sub,
    clang::SourceLocation RParenLoc,
    bool ListInitialization)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:3048

Parameters

clang::TypeSourceInfo* TInfo
clang::SourceLocation LParenLoc
clang::Expr* Sub
clang::SourceLocation RParenLoc
bool ListInitialization

clang::ExprResult RebuildCXXInheritedCtorInitExpr(
    clang::QualType T,
    clang::SourceLocation Loc,
    clang::CXXConstructorDecl* Constructor,
    bool ConstructsVBase,
    bool InheritedFromVBase)

Description

Build a new implicit construction via inherited constructor expression.

Declared at: clang/lib/Sema/TreeTransform.h:3311

Parameters

clang::QualType T
clang::SourceLocation Loc
clang::CXXConstructorDecl* Constructor
bool ConstructsVBase
bool InheritedFromVBase

clang::ExprResult RebuildCXXNamedCastExpr(
    clang::SourceLocation OpLoc,
    Stmt::StmtClass Class,
    clang::SourceLocation LAngleLoc,
    clang::TypeSourceInfo* TInfo,
    clang::SourceLocation RAngleLoc,
    clang::SourceLocation LParenLoc,
    clang::Expr* SubExpr,
    clang::SourceLocation RParenLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2927

Parameters

clang::SourceLocation OpLoc
Stmt::StmtClass Class
clang::SourceLocation LAngleLoc
clang::TypeSourceInfo* TInfo
clang::SourceLocation RAngleLoc
clang::SourceLocation LParenLoc
clang::Expr* SubExpr
clang::SourceLocation RParenLoc

clang::ExprResult RebuildCXXNewExpr(
    clang::SourceLocation StartLoc,
    bool UseGlobal,
    clang::SourceLocation PlacementLParen,
    clang::MultiExprArg PlacementArgs,
    clang::SourceLocation PlacementRParen,
    clang::SourceRange TypeIdParens,
    clang::QualType AllocatedType,
    clang::TypeSourceInfo* AllocatedTypeInfo,
    Optional<clang::Expr*> ArraySize,
    clang::SourceRange DirectInitRange,
    clang::Expr* Initializer)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:3168

Parameters

clang::SourceLocation StartLoc
bool UseGlobal
clang::SourceLocation PlacementLParen
clang::MultiExprArg PlacementArgs
clang::SourceLocation PlacementRParen
clang::SourceRange TypeIdParens
clang::QualType AllocatedType
clang::TypeSourceInfo* AllocatedTypeInfo
Optional<clang::Expr*> ArraySize
clang::SourceRange DirectInitRange
clang::Expr* Initializer

clang::ExprResult RebuildCXXNoexceptExpr(
    clang::SourceRange Range,
    clang::Expr* Arg)

Description

Build a new noexcept expression. By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.

Declared at: clang/lib/Sema/TreeTransform.h:3395

Parameters

clang::SourceRange Range
clang::Expr* Arg

clang::ExprResult RebuildCXXOperatorCallExpr(
    clang::OverloadedOperatorKind Op,
    clang::SourceLocation OpLoc,
    clang::Expr* Callee,
    clang::Expr* First,
    clang::Expr* Second)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2915

Parameters

clang::OverloadedOperatorKind Op
clang::SourceLocation OpLoc
clang::Expr* Callee
clang::Expr* First
clang::Expr* Second

clang::ExprResult RebuildCXXPseudoDestructorExpr(
    clang::Expr* Base,
    clang::SourceLocation OperatorLoc,
    bool isArrow,
    clang::CXXScopeSpec& SS,
    clang::TypeSourceInfo* ScopeType,
    clang::SourceLocation CCLoc,
    clang::SourceLocation TildeLoc,
    clang::PseudoDestructorTypeStorage Destroyed)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2526

Parameters

clang::Expr* Base
clang::SourceLocation OperatorLoc
bool isArrow
clang::CXXScopeSpec& SS
clang::TypeSourceInfo* ScopeType
clang::SourceLocation CCLoc
clang::SourceLocation TildeLoc
clang::PseudoDestructorTypeStorage Destroyed

clang::ExprResult RebuildCXXReinterpretCastExpr(
    clang::SourceLocation OpLoc,
    clang::SourceLocation LAngleLoc,
    clang::TypeSourceInfo* TInfo,
    clang::SourceLocation RAngleLoc,
    clang::SourceLocation LParenLoc,
    clang::Expr* SubExpr,
    clang::SourceLocation RParenLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:3004

Parameters

clang::SourceLocation OpLoc
clang::SourceLocation LAngleLoc
clang::TypeSourceInfo* TInfo
clang::SourceLocation RAngleLoc
clang::SourceLocation LParenLoc
clang::Expr* SubExpr
clang::SourceLocation RParenLoc

clang::ExprResult
RebuildCXXRewrittenBinaryOperator(
    clang::SourceLocation OpLoc,
    clang::BinaryOperatorKind Opcode,
    const clang::UnresolvedSetImpl& UnqualLookups,
    clang::Expr* LHS,
    clang::Expr* RHS)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2738

Parameters

clang::SourceLocation OpLoc
clang::BinaryOperatorKind Opcode
const clang::UnresolvedSetImpl& UnqualLookups
clang::Expr* LHS
clang::Expr* RHS

clang::ExprResult RebuildCXXScalarValueInitExpr(
    clang::TypeSourceInfo* TSInfo,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation RParenLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:3157

Parameters

clang::TypeSourceInfo* TSInfo
clang::SourceLocation LParenLoc
clang::SourceLocation RParenLoc

clang::ExprResult RebuildCXXStaticCastExpr(
    clang::SourceLocation OpLoc,
    clang::SourceLocation LAngleLoc,
    clang::TypeSourceInfo* TInfo,
    clang::SourceLocation RAngleLoc,
    clang::SourceLocation LParenLoc,
    clang::Expr* SubExpr,
    clang::SourceLocation RParenLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2970

Parameters

clang::SourceLocation OpLoc
clang::SourceLocation LAngleLoc
clang::TypeSourceInfo* TInfo
clang::SourceLocation RAngleLoc
clang::SourceLocation LParenLoc
clang::Expr* SubExpr
clang::SourceLocation RParenLoc

clang::ExprResult RebuildCXXTemporaryObjectExpr(
    clang::TypeSourceInfo* TSInfo,
    clang::SourceLocation LParenOrBraceLoc,
    clang::MultiExprArg Args,
    clang::SourceLocation RParenOrBraceLoc,
    bool ListInitialization)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:3323

Parameters

clang::TypeSourceInfo* TSInfo
clang::SourceLocation LParenOrBraceLoc
clang::MultiExprArg Args
clang::SourceLocation RParenOrBraceLoc
bool ListInitialization

clang::ExprResult RebuildCXXThisExpr(
    clang::SourceLocation ThisLoc,
    clang::QualType ThisType,
    bool isImplicit)

Description

Build a new C++ "this" expression. By default, builds a new "this" expression without performing any semantic analysis. Subclasses may override this routine to provide different behavior.

Declared at: clang/lib/Sema/TreeTransform.h:3117

Parameters

clang::SourceLocation ThisLoc
clang::QualType ThisType
bool isImplicit

clang::ExprResult RebuildCXXThrowExpr(
    clang::SourceLocation ThrowLoc,
    clang::Expr* Sub,
    bool IsThrownVariableInScope)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:3127

Parameters

clang::SourceLocation ThrowLoc
clang::Expr* Sub
bool IsThrownVariableInScope

clang::StmtResult RebuildCXXTryStmt(
    clang::SourceLocation TryLoc,
    clang::Stmt* TryBlock,
    ArrayRef<clang::Stmt*> Handlers)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2391

Parameters

clang::SourceLocation TryLoc
clang::Stmt* TryBlock
ArrayRef<clang::Stmt*> Handlers

clang::ExprResult RebuildCXXTypeidExpr(
    clang::QualType TypeInfoType,
    clang::SourceLocation TypeidLoc,
    clang::Expr* Operand,
    clang::SourceLocation RParenLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:3085

Parameters

clang::QualType TypeInfoType
clang::SourceLocation TypeidLoc
clang::Expr* Operand
clang::SourceLocation RParenLoc

clang::ExprResult RebuildCXXTypeidExpr(
    clang::QualType TypeInfoType,
    clang::SourceLocation TypeidLoc,
    clang::TypeSourceInfo* Operand,
    clang::SourceLocation RParenLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:3072

Parameters

clang::QualType TypeInfoType
clang::SourceLocation TypeidLoc
clang::TypeSourceInfo* Operand
clang::SourceLocation RParenLoc

clang::ExprResult
RebuildCXXUnresolvedConstructExpr(
    clang::TypeSourceInfo* TSInfo,
    clang::SourceLocation LParenLoc,
    clang::MultiExprArg Args,
    clang::SourceLocation RParenLoc,
    bool ListInitialization)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:3336

Parameters

clang::TypeSourceInfo* TSInfo
clang::SourceLocation LParenLoc
clang::MultiExprArg Args
clang::SourceLocation RParenLoc
bool ListInitialization

clang::ExprResult RebuildCXXUuidofExpr(
    clang::QualType Type,
    clang::SourceLocation TypeidLoc,
    clang::Expr* Operand,
    clang::SourceLocation RParenLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:3107

Parameters

clang::QualType Type
clang::SourceLocation TypeidLoc
clang::Expr* Operand
clang::SourceLocation RParenLoc

clang::ExprResult RebuildCXXUuidofExpr(
    clang::QualType Type,
    clang::SourceLocation TypeidLoc,
    clang::TypeSourceInfo* Operand,
    clang::SourceLocation RParenLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:3097

Parameters

clang::QualType Type
clang::SourceLocation TypeidLoc
clang::TypeSourceInfo* Operand
clang::SourceLocation RParenLoc

clang::ExprResult RebuildCallExpr(
    clang::Expr* Callee,
    clang::SourceLocation LParenLoc,
    clang::MultiExprArg Args,
    clang::SourceLocation RParenLoc,
    clang::Expr* ExecConfig = nullptr)

Description

Build a new call expression. By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.

Declared at: clang/lib/Sema/TreeTransform.h:2651

Parameters

clang::Expr* Callee
clang::SourceLocation LParenLoc
clang::MultiExprArg Args
clang::SourceLocation RParenLoc
clang::Expr* ExecConfig = nullptr

clang::StmtResult RebuildCaseStmt(
    clang::SourceLocation CaseLoc,
    clang::Expr* LHS,
    clang::SourceLocation EllipsisLoc,
    clang::Expr* RHS,
    clang::SourceLocation ColonLoc)

Description

Build a new case statement. By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.

Declared at: clang/lib/Sema/TreeTransform.h:1276

Parameters

clang::SourceLocation CaseLoc
clang::Expr* LHS
clang::SourceLocation EllipsisLoc
clang::Expr* RHS
clang::SourceLocation ColonLoc

clang::StmtResult RebuildCaseStmtBody(
    clang::Stmt* S,
    clang::Stmt* Body)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1289

Parameters

clang::Stmt* S
clang::Stmt* Body

clang::ExprResult RebuildChooseExpr(
    clang::SourceLocation BuiltinLoc,
    clang::Expr* Cond,
    clang::Expr* LHS,
    clang::Expr* RHS,
    clang::SourceLocation RParenLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2885

Parameters

clang::SourceLocation BuiltinLoc
clang::Expr* Cond
clang::Expr* LHS
clang::Expr* RHS
clang::SourceLocation RParenLoc

clang::ExprResult RebuildCoawaitExpr(
    clang::SourceLocation CoawaitLoc,
    clang::Expr* Operand,
    clang::UnresolvedLookupExpr* OpCoawaitLookup,
    bool IsImplicit)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1473

Parameters

clang::SourceLocation CoawaitLoc
clang::Expr* Operand
clang::UnresolvedLookupExpr* OpCoawaitLookup
bool IsImplicit

clang::ExprResult RebuildCompoundLiteralExpr(
    clang::SourceLocation LParenLoc,
    clang::TypeSourceInfo* TInfo,
    clang::SourceLocation RParenLoc,
    clang::Expr* Init)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2774

Parameters

clang::SourceLocation LParenLoc
clang::TypeSourceInfo* TInfo
clang::SourceLocation RParenLoc
clang::Expr* Init

clang::StmtResult RebuildCompoundStmt(
    clang::SourceLocation LBraceLoc,
    clang::MultiStmtArg Statements,
    clang::SourceLocation RBraceLoc,
    bool IsStmtExpr)

Description

Build a new compound statement. By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.

Declared at: clang/lib/Sema/TreeTransform.h:1264

Parameters

clang::SourceLocation LBraceLoc
clang::MultiStmtArg Statements
clang::SourceLocation RBraceLoc
bool IsStmtExpr

clang::ExprResult
RebuildConceptSpecializationExpr(
    clang::NestedNameSpecifierLoc NNS,
    clang::SourceLocation TemplateKWLoc,
    clang::DeclarationNameInfo ConceptNameInfo,
    clang::NamedDecl* FoundDecl,
    clang::ConceptDecl* NamedConcept,
    clang::TemplateArgumentListInfo* TALI)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:3427

Parameters

clang::NestedNameSpecifierLoc NNS
clang::SourceLocation TemplateKWLoc
clang::DeclarationNameInfo ConceptNameInfo
clang::NamedDecl* FoundDecl
clang::ConceptDecl* NamedConcept
clang::TemplateArgumentListInfo* TALI

clang::ExprResult RebuildConditionalOperator(
    clang::Expr* Cond,
    clang::SourceLocation QuestionLoc,
    clang::Expr* LHS,
    clang::SourceLocation ColonLoc,
    clang::Expr* RHS)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2749

Parameters

clang::Expr* Cond
clang::SourceLocation QuestionLoc
clang::Expr* LHS
clang::SourceLocation ColonLoc
clang::Expr* RHS

clang::QualType RebuildConstantArrayType(
    clang::QualType ElementType,
    ArrayType::ArraySizeModifier SizeMod,
    const llvm::APInt& Size,
    clang::Expr* SizeExpr,
    unsigned int IndexTypeQuals,
    clang::SourceRange BracketsRange)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:826

Parameters

clang::QualType ElementType
ArrayType::ArraySizeModifier SizeMod
const llvm::APInt& Size
clang::Expr* SizeExpr
unsigned int IndexTypeQuals
clang::SourceRange BracketsRange

clang::QualType RebuildConstantMatrixType(
    clang::QualType ElementType,
    unsigned int NumRows,
    unsigned int NumColumns)

Description

Build a new matrix type given the element type and dimensions.

Declared at: clang/lib/Sema/TreeTransform.h:900

Parameters

clang::QualType ElementType
unsigned int NumRows
unsigned int NumColumns

clang::ExprResult RebuildConvertVectorExpr(
    clang::SourceLocation BuiltinLoc,
    clang::Expr* SrcExpr,
    clang::TypeSourceInfo* DstTInfo,
    clang::SourceLocation RParenLoc)

Description

Build a new convert vector expression.

Declared at: clang/lib/Sema/TreeTransform.h:3695

Parameters

clang::SourceLocation BuiltinLoc
clang::Expr* SrcExpr
clang::TypeSourceInfo* DstTInfo
clang::SourceLocation RParenLoc

clang::StmtResult RebuildCoreturnStmt(
    clang::SourceLocation CoreturnLoc,
    clang::Expr* Result,
    bool IsImplicit)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1464

Parameters

clang::SourceLocation CoreturnLoc
clang::Expr* Result
bool IsImplicit

clang::StmtResult RebuildCoroutineBodyStmt(
    CoroutineBodyStmt::CtorArgs Args)

Declared at: clang/lib/Sema/TreeTransform.h:1515

Parameters

CoroutineBodyStmt::CtorArgs Args

clang::ExprResult RebuildCoyieldExpr(
    clang::SourceLocation CoyieldLoc,
    clang::Expr* Result)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1511

Parameters

clang::SourceLocation CoyieldLoc
clang::Expr* Result

clang::ExprResult RebuildCxxSubscriptExpr(
    clang::Expr* Callee,
    clang::SourceLocation LParenLoc,
    clang::MultiExprArg Args,
    clang::SourceLocation RParenLoc)

Declared at: clang/lib/Sema/TreeTransform.h:2659

Parameters

clang::Expr* Callee
clang::SourceLocation LParenLoc
clang::MultiExprArg Args
clang::SourceLocation RParenLoc

clang::ExprResult RebuildDeclRefExpr(
    clang::NestedNameSpecifierLoc QualifierLoc,
    clang::ValueDecl* VD,
    const clang::DeclarationNameInfo& NameInfo,
    clang::NamedDecl* Found,
    clang::TemplateArgumentListInfo* TemplateArgs)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2502

Parameters

clang::NestedNameSpecifierLoc QualifierLoc
clang::ValueDecl* VD
const clang::DeclarationNameInfo& NameInfo
clang::NamedDecl* Found
clang::TemplateArgumentListInfo* TemplateArgs

clang::StmtResult RebuildDeclStmt(
    MutableArrayRef<clang::Decl*> Decls,
    clang::SourceLocation StartLoc,
    clang::SourceLocation EndLoc)

Description

Build a new declaration statement. By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.

Declared at: clang/lib/Sema/TreeTransform.h:1421

Parameters

MutableArrayRef<clang::Decl*> Decls
clang::SourceLocation StartLoc
clang::SourceLocation EndLoc

clang::ExprResult RebuildDeclarationNameExpr(
    const clang::CXXScopeSpec& SS,
    clang::LookupResult& R,
    bool RequiresADL)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2491

Parameters

const clang::CXXScopeSpec& SS
clang::LookupResult& R
bool RequiresADL

clang::QualType RebuildDecltypeType(
    clang::Expr* Underlying,
    clang::SourceLocation Loc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:982

Parameters

clang::Expr* Underlying
clang::SourceLocation Loc

clang::QualType
RebuildDeducedTemplateSpecializationType(
    clang::TemplateName Template,
    clang::QualType Deduced)

Description

By default, builds a new DeducedTemplateSpecializationType with the given deduced type.

Declared at: clang/lib/Sema/TreeTransform.h:1001

Parameters

clang::TemplateName Template
clang::QualType Deduced

clang::StmtResult RebuildDefaultStmt(
    clang::SourceLocation DefaultLoc,
    clang::SourceLocation ColonLoc,
    clang::Stmt* SubStmt)

Description

Build a new default statement. By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.

Declared at: clang/lib/Sema/TreeTransform.h:1298

Parameters

clang::SourceLocation DefaultLoc
clang::SourceLocation ColonLoc
clang::Stmt* SubStmt

clang::QualType RebuildDependentAddressSpaceType(
    clang::QualType PointeeType,
    clang::Expr* AddrSpaceExpr,
    clang::SourceLocation AttributeLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:917

Parameters

clang::QualType PointeeType
clang::Expr* AddrSpaceExpr
clang::SourceLocation AttributeLoc

clang::QualType RebuildDependentBitIntType(
    bool IsUnsigned,
    clang::Expr* NumBitsExpr,
    clang::SourceLocation Loc)

Description

Build a dependent bit-precise int given its value type.

Declared at: clang/lib/Sema/TreeTransform.h:1208

Parameters

bool IsUnsigned
clang::Expr* NumBitsExpr
clang::SourceLocation Loc

clang::ExprResult RebuildDependentCoawaitExpr(
    clang::SourceLocation CoawaitLoc,
    clang::Expr* Result,
    clang::UnresolvedLookupExpr* Lookup)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1501

Parameters

clang::SourceLocation CoawaitLoc
clang::Expr* Result
clang::UnresolvedLookupExpr* Lookup

clang::QualType RebuildDependentNameType(
    clang::ElaboratedTypeKeyword Keyword,
    clang::SourceLocation KeywordLoc,
    clang::NestedNameSpecifierLoc QualifierLoc,
    const clang::IdentifierInfo* Id,
    clang::SourceLocation IdLoc,
    bool DeducedTSTContext)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1088

Parameters

clang::ElaboratedTypeKeyword Keyword
clang::SourceLocation KeywordLoc
clang::NestedNameSpecifierLoc QualifierLoc
const clang::IdentifierInfo* Id
clang::SourceLocation IdLoc
bool DeducedTSTContext

clang::ExprResult
RebuildDependentScopeDeclRefExpr(
    clang::NestedNameSpecifierLoc QualifierLoc,
    clang::SourceLocation TemplateKWLoc,
    const clang::DeclarationNameInfo& NameInfo,
    const clang::TemplateArgumentListInfo*
        TemplateArgs,
    bool IsAddressOfOperand,
    clang::TypeSourceInfo** RecoveryTSI)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:3242

Parameters

clang::NestedNameSpecifierLoc QualifierLoc
clang::SourceLocation TemplateKWLoc
const clang::DeclarationNameInfo& NameInfo
const clang::TemplateArgumentListInfo* TemplateArgs
bool IsAddressOfOperand
clang::TypeSourceInfo** RecoveryTSI

clang::QualType RebuildDependentSizedArrayType(
    clang::QualType ElementType,
    ArrayType::ArraySizeModifier SizeMod,
    clang::Expr* SizeExpr,
    unsigned int IndexTypeQuals,
    clang::SourceRange BracketsRange)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:859

Parameters

clang::QualType ElementType
ArrayType::ArraySizeModifier SizeMod
clang::Expr* SizeExpr
unsigned int IndexTypeQuals
clang::SourceRange BracketsRange

clang::QualType
RebuildDependentSizedExtVectorType(
    clang::QualType ElementType,
    clang::Expr* SizeExpr,
    clang::SourceLocation AttributeLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:895

Parameters

clang::QualType ElementType
clang::Expr* SizeExpr
clang::SourceLocation AttributeLoc

clang::QualType RebuildDependentSizedMatrixType(
    clang::QualType ElementType,
    clang::Expr* RowExpr,
    clang::Expr* ColumnExpr,
    clang::SourceLocation AttributeLoc)

Description

Build a new matrix type given the type and dependently-defined dimensions.

Declared at: clang/lib/Sema/TreeTransform.h:905

Parameters

clang::QualType ElementType
clang::Expr* RowExpr
clang::Expr* ColumnExpr
clang::SourceLocation AttributeLoc

clang::QualType
RebuildDependentTemplateSpecializationType(
    clang::ElaboratedTypeKeyword Keyword,
    clang::NestedNameSpecifierLoc QualifierLoc,
    clang::SourceLocation TemplateKWLoc,
    const clang::IdentifierInfo* Name,
    clang::SourceLocation NameLoc,
    clang::TemplateArgumentListInfo& Args,
    bool AllowInjectedClassName)

Description

Build a new typename type that refers to a template-id. By default, builds a new DependentNameType type from the nested-name-specifier and the given type. Subclasses may override this routine to provide different behavior.

Declared at: clang/lib/Sema/TreeTransform.h:1043

Parameters

clang::ElaboratedTypeKeyword Keyword
clang::NestedNameSpecifierLoc QualifierLoc
clang::SourceLocation TemplateKWLoc
const clang::IdentifierInfo* Name
clang::SourceLocation NameLoc
clang::TemplateArgumentListInfo& Args
bool AllowInjectedClassName

clang::QualType RebuildDependentVectorType(
    clang::QualType ElementType,
    clang::Expr* SizeExpr,
    clang::SourceLocation AttributeLoc,
    VectorType::VectorKind)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:878

Parameters

clang::QualType ElementType
clang::Expr* SizeExpr
clang::SourceLocation AttributeLoc
VectorType::VectorKind

clang::ExprResult RebuildDesignatedInitExpr(
    clang::Designation& Desig,
    clang::MultiExprArg ArrayExprs,
    clang::SourceLocation EqualOrColonLoc,
    bool GNUSyntax,
    clang::Expr* Init)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2816

Parameters

clang::Designation& Desig
clang::MultiExprArg ArrayExprs
clang::SourceLocation EqualOrColonLoc
bool GNUSyntax
clang::Expr* Init

clang::StmtResult RebuildDoStmt(
    clang::SourceLocation DoLoc,
    clang::Stmt* Body,
    clang::SourceLocation WhileLoc,
    clang::SourceLocation LParenLoc,
    clang::Expr* Cond,
    clang::SourceLocation RParenLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1371

Parameters

clang::SourceLocation DoLoc
clang::Stmt* Body
clang::SourceLocation WhileLoc
clang::SourceLocation LParenLoc
clang::Expr* Cond
clang::SourceLocation RParenLoc

clang::QualType RebuildElaboratedType(
    clang::SourceLocation KeywordLoc,
    clang::ElaboratedTypeKeyword Keyword,
    clang::NestedNameSpecifierLoc QualifierLoc,
    clang::QualType Named)

Description

Build a new qualified name type. By default, builds a new ElaboratedType type from the keyword, the nested-name-specifier and the named type. Subclasses may override this routine to provide different behavior.

Declared at: clang/lib/Sema/TreeTransform.h:1029

Parameters

clang::SourceLocation KeywordLoc
clang::ElaboratedTypeKeyword Keyword
clang::NestedNameSpecifierLoc QualifierLoc
clang::QualType Named

clang::ExprResult RebuildEmptyCXXFoldExpr(
    clang::SourceLocation EllipsisLoc,
    clang::BinaryOperatorKind Operator)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:3779

Parameters

clang::SourceLocation EllipsisLoc
clang::BinaryOperatorKind Operator

clang::QualType RebuildEnumType(
    clang::EnumDecl* Enum)

Description

Build a new Enum type.

Declared at: clang/lib/Sema/TreeTransform.h:958

Parameters

clang::EnumDecl* Enum

clang::VarDecl* RebuildExceptionDecl(
    clang::VarDecl* ExceptionDecl,
    clang::TypeSourceInfo* Declarator,
    clang::SourceLocation StartLoc,
    clang::SourceLocation IdLoc,
    clang::IdentifierInfo* Id)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2364

Parameters

clang::VarDecl* ExceptionDecl
clang::TypeSourceInfo* Declarator
clang::SourceLocation StartLoc
clang::SourceLocation IdLoc
clang::IdentifierInfo* Id

concepts::ExprRequirement* RebuildExprRequirement(
    concepts::Requirement::SubstitutionDiagnostic*
        SubstDiag,
    bool IsSimple,
    clang::SourceLocation NoexceptLoc,
    concepts::ExprRequirement::
        ReturnTypeRequirement Ret)

Declared at: clang/lib/Sema/TreeTransform.h:3466

Parameters

concepts::Requirement::SubstitutionDiagnostic* SubstDiag
bool IsSimple
clang::SourceLocation NoexceptLoc
concepts::ExprRequirement::ReturnTypeRequirement Ret

concepts::ExprRequirement* RebuildExprRequirement(
    clang::Expr* E,
    bool IsSimple,
    clang::SourceLocation NoexceptLoc,
    concepts::ExprRequirement::
        ReturnTypeRequirement Ret)

Declared at: clang/lib/Sema/TreeTransform.h:3475

Parameters

clang::Expr* E
bool IsSimple
clang::SourceLocation NoexceptLoc
concepts::ExprRequirement::ReturnTypeRequirement Ret

clang::ExprResult RebuildExpressionTrait(
    clang::ExpressionTrait Trait,
    clang::SourceLocation StartLoc,
    clang::Expr* Queried,
    clang::SourceLocation RParenLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:3230

Parameters

clang::ExpressionTrait Trait
clang::SourceLocation StartLoc
clang::Expr* Queried
clang::SourceLocation RParenLoc

clang::ExprResult RebuildExtVectorElementExpr(
    clang::Expr* Base,
    clang::SourceLocation OpLoc,
    clang::SourceLocation AccessorLoc,
    clang::IdentifierInfo& Accessor)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2786

Parameters

clang::Expr* Base
clang::SourceLocation OpLoc
clang::SourceLocation AccessorLoc
clang::IdentifierInfo& Accessor

clang::QualType RebuildExtVectorType(
    clang::QualType ElementType,
    unsigned int NumElements,
    clang::SourceLocation AttributeLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:887

Parameters

clang::QualType ElementType
unsigned int NumElements
clang::SourceLocation AttributeLoc

clang::StmtResult RebuildForStmt(
    clang::SourceLocation ForLoc,
    clang::SourceLocation LParenLoc,
    clang::Stmt* Init,
    Sema::ConditionResult Cond,
    Sema::FullExprArg Inc,
    clang::SourceLocation RParenLoc,
    clang::Stmt* Body)

Description

Build a new for statement. By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.

Declared at: clang/lib/Sema/TreeTransform.h:1382

Parameters

clang::SourceLocation ForLoc
clang::SourceLocation LParenLoc
clang::Stmt* Init
Sema::ConditionResult Cond
Sema::FullExprArg Inc
clang::SourceLocation RParenLoc
clang::Stmt* Body

clang::QualType RebuildFunctionNoProtoType(
    clang::QualType ResultType)

Description

Build a new unprototyped function type.

Declared at: clang/lib/Sema/TreeTransform.h:930

Parameters

clang::QualType ResultType

clang::QualType RebuildFunctionProtoType(
    clang::QualType T,
    MutableArrayRef<clang::QualType> ParamTypes,
    const FunctionProtoType::ExtProtoInfo& EPI)

Description

Build a new function type. By default, performs semantic analysis when building the function type. Subclasses may override this routine to provide different behavior.

Declared at: clang/lib/Sema/TreeTransform.h:925

Parameters

clang::QualType T
MutableArrayRef<clang::QualType> ParamTypes
const FunctionProtoType::ExtProtoInfo& EPI

clang::StmtResult RebuildGCCAsmStmt(
    clang::SourceLocation AsmLoc,
    bool IsSimple,
    bool IsVolatile,
    unsigned int NumOutputs,
    unsigned int NumInputs,
    clang::IdentifierInfo** Names,
    clang::MultiExprArg Constraints,
    clang::MultiExprArg Exprs,
    clang::Expr* AsmString,
    clang::MultiExprArg Clobbers,
    unsigned int NumLabels,
    clang::SourceLocation RParenLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1431

Parameters

clang::SourceLocation AsmLoc
bool IsSimple
bool IsVolatile
unsigned int NumOutputs
unsigned int NumInputs
clang::IdentifierInfo** Names
clang::MultiExprArg Constraints
clang::MultiExprArg Exprs
clang::Expr* AsmString
clang::MultiExprArg Clobbers
unsigned int NumLabels
clang::SourceLocation RParenLoc

clang::ExprResult RebuildGenericSelectionExpr(
    clang::SourceLocation KeyLoc,
    clang::SourceLocation DefaultLoc,
    clang::SourceLocation RParenLoc,
    clang::Expr* ControllingExpr,
    ArrayRef<clang::TypeSourceInfo*> Types,
    ArrayRef<clang::Expr*> Exprs)

Description

Build a new generic selection expression. By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.

Declared at: clang/lib/Sema/TreeTransform.h:2897

Parameters

clang::SourceLocation KeyLoc
clang::SourceLocation DefaultLoc
clang::SourceLocation RParenLoc
clang::Expr* ControllingExpr
ArrayRef<clang::TypeSourceInfo*> Types
ArrayRef<clang::Expr*> Exprs

clang::StmtResult RebuildGotoStmt(
    clang::SourceLocation GotoLoc,
    clang::SourceLocation LabelLoc,
    clang::LabelDecl* Label)

Description

Build a new goto statement. By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.

Declared at: clang/lib/Sema/TreeTransform.h:1394

Parameters

clang::SourceLocation GotoLoc
clang::SourceLocation LabelLoc
clang::LabelDecl* Label

clang::StmtResult RebuildIfStmt(
    clang::SourceLocation IfLoc,
    clang::IfStatementKind Kind,
    clang::SourceLocation LParenLoc,
    Sema::ConditionResult Cond,
    clang::SourceLocation RParenLoc,
    clang::Stmt* Init,
    clang::Stmt* Then,
    clang::SourceLocation ElseLoc,
    clang::Stmt* Else)

Description

Build a new "if" statement. By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.

Declared at: clang/lib/Sema/TreeTransform.h:1328

Parameters

clang::SourceLocation IfLoc
clang::IfStatementKind Kind
clang::SourceLocation LParenLoc
Sema::ConditionResult Cond
clang::SourceLocation RParenLoc
clang::Stmt* Init
clang::Stmt* Then
clang::SourceLocation ElseLoc
clang::Stmt* Else

clang::ExprResult RebuildImplicitValueInitExpr(
    clang::QualType T)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2835

Parameters

clang::QualType T

clang::QualType RebuildIncompleteArrayType(
    clang::QualType ElementType,
    ArrayType::ArraySizeModifier SizeMod,
    unsigned int IndexTypeQuals,
    clang::SourceRange BracketsRange)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:838

Parameters

clang::QualType ElementType
ArrayType::ArraySizeModifier SizeMod
unsigned int IndexTypeQuals
clang::SourceRange BracketsRange

clang::StmtResult RebuildIndirectGotoStmt(
    clang::SourceLocation GotoLoc,
    clang::SourceLocation StarLoc,
    clang::Expr* Target)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1403

Parameters

clang::SourceLocation GotoLoc
clang::SourceLocation StarLoc
clang::Expr* Target

clang::ExprResult RebuildInitList(
    clang::SourceLocation LBraceLoc,
    clang::MultiExprArg Inits,
    clang::SourceLocation RBraceLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2806

Parameters

clang::SourceLocation LBraceLoc
clang::MultiExprArg Inits
clang::SourceLocation RBraceLoc

clang::StmtResult RebuildLabelStmt(
    clang::SourceLocation IdentLoc,
    clang::LabelDecl* L,
    clang::SourceLocation ColonLoc,
    clang::Stmt* SubStmt)

Description

Build a new label statement. By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.

Declared at: clang/lib/Sema/TreeTransform.h:1309

Parameters

clang::SourceLocation IdentLoc
clang::LabelDecl* L
clang::SourceLocation ColonLoc
clang::Stmt* SubStmt

clang::StmtResult RebuildMSAsmStmt(
    clang::SourceLocation AsmLoc,
    clang::SourceLocation LBraceLoc,
    ArrayRef<clang::Token> AsmToks,
    llvm::StringRef AsmString,
    unsigned int NumOutputs,
    unsigned int NumInputs,
    ArrayRef<llvm::StringRef> Constraints,
    ArrayRef<llvm::StringRef> Clobbers,
    ArrayRef<clang::Expr*> Exprs,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1447

Parameters

clang::SourceLocation AsmLoc
clang::SourceLocation LBraceLoc
ArrayRef<clang::Token> AsmToks
llvm::StringRef AsmString
unsigned int NumOutputs
unsigned int NumInputs
ArrayRef<llvm::StringRef> Constraints
ArrayRef<llvm::StringRef> Clobbers
ArrayRef<clang::Expr*> Exprs
clang::SourceLocation EndLoc

clang::StmtResult RebuildMSDependentExistsStmt(
    clang::SourceLocation KeywordLoc,
    bool IsIfExists,
    clang::NestedNameSpecifierLoc QualifierLoc,
    clang::DeclarationNameInfo NameInfo,
    clang::Stmt* Nested)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2440

Parameters

clang::SourceLocation KeywordLoc
bool IsIfExists
clang::NestedNameSpecifierLoc QualifierLoc
clang::DeclarationNameInfo NameInfo
clang::Stmt* Nested

clang::QualType RebuildMacroQualifiedType(
    clang::QualType T,
    const clang::IdentifierInfo* MacroII)

Description

Build a new MacroDefined type.

Declared at: clang/lib/Sema/TreeTransform.h:947

Parameters

clang::QualType T
const clang::IdentifierInfo* MacroII

clang::ExprResult RebuildMatrixSubscriptExpr(
    clang::Expr* Base,
    clang::Expr* RowIdx,
    clang::Expr* ColumnIdx,
    clang::SourceLocation RBracketLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2602

Parameters

clang::Expr* Base
clang::Expr* RowIdx
clang::Expr* ColumnIdx
clang::SourceLocation RBracketLoc

clang::ExprResult RebuildMemberExpr(
    clang::Expr* Base,
    clang::SourceLocation OpLoc,
    bool isArrow,
    clang::NestedNameSpecifierLoc QualifierLoc,
    clang::SourceLocation TemplateKWLoc,
    const clang::DeclarationNameInfo&
        MemberNameInfo,
    clang::ValueDecl* Member,
    clang::NamedDecl* FoundDecl,
    const clang::TemplateArgumentListInfo*
        ExplicitTemplateArgs,
    clang::NamedDecl* FirstQualifierInScope)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2670

Parameters

clang::Expr* Base
clang::SourceLocation OpLoc
bool isArrow
clang::NestedNameSpecifierLoc QualifierLoc
clang::SourceLocation TemplateKWLoc
const clang::DeclarationNameInfo& MemberNameInfo
clang::ValueDecl* Member
clang::NamedDecl* FoundDecl
const clang::TemplateArgumentListInfo* ExplicitTemplateArgs
clang::NamedDecl* FirstQualifierInScope

clang::QualType RebuildMemberPointerType(
    clang::QualType PointeeType,
    clang::QualType ClassType,
    clang::SourceLocation Sigil)

Description

Build a new member pointer type given the pointee type and the class type it refers into. By default, performs semantic analysis when building the member pointer type. Subclasses may override this routine to provide different behavior.

Declared at: clang/lib/Sema/TreeTransform.h:777

Parameters

clang::QualType PointeeType
clang::QualType ClassType
clang::SourceLocation Sigil

concepts::NestedRequirement*
RebuildNestedRequirement(
    concepts::Requirement::SubstitutionDiagnostic*
        SubstDiag)

Declared at: clang/lib/Sema/TreeTransform.h:3482

Parameters

concepts::Requirement::SubstitutionDiagnostic* SubstDiag

concepts::NestedRequirement*
RebuildNestedRequirement(clang::Expr* Constraint)

Declared at: clang/lib/Sema/TreeTransform.h:3487

Parameters

clang::Expr* Constraint

clang::OMPClause* RebuildOMPAffinityClause(
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation ColonLoc,
    clang::SourceLocation EndLoc,
    clang::Expr* Modifier,
    ArrayRef<clang::Expr*> Locators)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2197

Parameters

clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation ColonLoc
clang::SourceLocation EndLoc
clang::Expr* Modifier
ArrayRef<clang::Expr*> Locators

clang::OMPClause* RebuildOMPAlignClause(
    clang::Expr* A,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2308

Parameters

clang::Expr* A
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation EndLoc

clang::OMPClause* RebuildOMPAlignedClause(
    ArrayRef<clang::Expr*> VarList,
    clang::Expr* Alignment,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation ColonLoc,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1862

Parameters

ArrayRef<clang::Expr*> VarList
clang::Expr* Alignment
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation ColonLoc
clang::SourceLocation EndLoc

clang::OMPClause* RebuildOMPAllocateClause(
    clang::Expr* Allocate,
    ArrayRef<clang::Expr*> VarList,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation ColonLoc,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1965

Parameters

clang::Expr* Allocate
ArrayRef<clang::Expr*> VarList
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation ColonLoc
clang::SourceLocation EndLoc

clang::OMPClause* RebuildOMPAllocatorClause(
    clang::Expr* A,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1678

Parameters

clang::Expr* A
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation EndLoc

clang::ExprResult RebuildOMPArraySectionExpr(
    clang::Expr* Base,
    clang::SourceLocation LBracketLoc,
    clang::Expr* LowerBound,
    clang::SourceLocation ColonLocFirst,
    clang::SourceLocation ColonLocSecond,
    clang::Expr* Length,
    clang::Expr* Stride,
    clang::SourceLocation RBracketLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2613

Parameters

clang::Expr* Base
clang::SourceLocation LBracketLoc
clang::Expr* LowerBound
clang::SourceLocation ColonLocFirst
clang::SourceLocation ColonLocSecond
clang::Expr* Length
clang::Expr* Stride
clang::SourceLocation RBracketLoc

clang::ExprResult RebuildOMPArrayShapingExpr(
    clang::Expr* Base,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation RParenLoc,
    ArrayRef<clang::Expr*> Dims,
    ArrayRef<clang::SourceRange> BracketsRanges)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2628

Parameters

clang::Expr* Base
clang::SourceLocation LParenLoc
clang::SourceLocation RParenLoc
ArrayRef<clang::Expr*> Dims
ArrayRef<clang::SourceRange> BracketsRanges

clang::OMPClause* RebuildOMPBindClause(
    clang::OpenMPBindClauseKind Kind,
    clang::SourceLocation KindLoc,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2295

Parameters

clang::OpenMPBindClauseKind Kind
clang::SourceLocation KindLoc
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation EndLoc

clang::StmtResult RebuildOMPCanonicalLoop(
    clang::Stmt* LoopStmt)

Description

Build a new OpenMP Canonical loop. Ensures that the outermost loop in @p LoopStmt is wrapped by a OMPCanonicalLoop.

Declared at: clang/lib/Sema/TreeTransform.h:1577

Parameters

clang::Stmt* LoopStmt

clang::OMPClause* RebuildOMPCollapseClause(
    clang::Expr* Num,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1688

Parameters

clang::Expr* Num
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation EndLoc

clang::OMPClause* RebuildOMPCopyinClause(
    ArrayRef<clang::Expr*> VarList,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1875

Parameters

ArrayRef<clang::Expr*> VarList
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation EndLoc

clang::OMPClause* RebuildOMPCopyprivateClause(
    ArrayRef<clang::Expr*> VarList,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1887

Parameters

ArrayRef<clang::Expr*> VarList
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation EndLoc

clang::OMPClause* RebuildOMPDefaultClause(
    llvm::omp::DefaultKind Kind,
    clang::SourceLocation KindKwLoc,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1699

Parameters

llvm::omp::DefaultKind Kind
clang::SourceLocation KindKwLoc
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation EndLoc

clang::OMPClause* RebuildOMPDefaultmapClause(
    clang::OpenMPDefaultmapClauseModifier M,
    clang::OpenMPDefaultmapClauseKind Kind,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation MLoc,
    clang::SourceLocation KindLoc,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2135

Parameters

clang::OpenMPDefaultmapClauseModifier M
clang::OpenMPDefaultmapClauseKind Kind
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation MLoc
clang::SourceLocation KindLoc
clang::SourceLocation EndLoc

clang::OMPClause* RebuildOMPDependClause(
    OMPDependClause::DependDataTy Data,
    clang::Expr* DepModifier,
    ArrayRef<clang::Expr*> VarList,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1922

Parameters

OMPDependClause::DependDataTy Data
clang::Expr* DepModifier
ArrayRef<clang::Expr*> VarList
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation EndLoc

clang::OMPClause* RebuildOMPDepobjClause(
    clang::Expr* Depobj,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1911

Parameters

clang::Expr* Depobj
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation EndLoc

clang::OMPClause* RebuildOMPDestroyClause(
    clang::Expr* InteropVar,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation VarLoc,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2249

Parameters

clang::Expr* InteropVar
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation VarLoc
clang::SourceLocation EndLoc

clang::OMPClause* RebuildOMPDetachClause(
    clang::Expr* Evt,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2044

Parameters

clang::Expr* Evt
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation EndLoc

clang::OMPClause* RebuildOMPDeviceClause(
    clang::OpenMPDeviceClauseModifier Modifier,
    clang::Expr* Device,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation ModifierLoc,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1935

Parameters

clang::OpenMPDeviceClauseModifier Modifier
clang::Expr* Device
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation ModifierLoc
clang::SourceLocation EndLoc

clang::OMPClause* RebuildOMPDistScheduleClause(
    clang::OpenMPDistScheduleClauseKind Kind,
    clang::Expr* ChunkSize,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation KindLoc,
    clang::SourceLocation CommaLoc,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2055

Parameters

clang::OpenMPDistScheduleClauseKind Kind
clang::Expr* ChunkSize
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation KindLoc
clang::SourceLocation CommaLoc
clang::SourceLocation EndLoc

clang::OMPClause* RebuildOMPExclusiveClause(
    ArrayRef<clang::Expr*> VarList,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2174

Parameters

ArrayRef<clang::Expr*> VarList
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation EndLoc

clang::StmtResult RebuildOMPExecutableDirective(
    clang::OpenMPDirectiveKind Kind,
    clang::DeclarationNameInfo DirName,
    clang::OpenMPDirectiveKind CancelRegion,
    ArrayRef<clang::OMPClause*> Clauses,
    clang::Stmt* AStmt,
    clang::SourceLocation StartLoc,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1585

Parameters

clang::OpenMPDirectiveKind Kind
clang::DeclarationNameInfo DirName
clang::OpenMPDirectiveKind CancelRegion
ArrayRef<clang::OMPClause*> Clauses
clang::Stmt* AStmt
clang::SourceLocation StartLoc
clang::SourceLocation EndLoc

clang::OMPClause* RebuildOMPFilterClause(
    clang::Expr* ThreadID,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2284

Parameters

clang::Expr* ThreadID
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation EndLoc

clang::OMPClause* RebuildOMPFinalClause(
    clang::Expr* Condition,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1614

Parameters

clang::Expr* Condition
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation EndLoc

clang::OMPClause* RebuildOMPFirstprivateClause(
    ArrayRef<clang::Expr*> VarList,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1760

Parameters

ArrayRef<clang::Expr*> VarList
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation EndLoc

clang::OMPClause* RebuildOMPFlushClause(
    ArrayRef<clang::Expr*> VarList,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1899

Parameters

ArrayRef<clang::Expr*> VarList
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation EndLoc

clang::OMPClause* RebuildOMPFromClause(
    ArrayRef<clang::OpenMPMotionModifierKind>
        MotionModifiers,
    ArrayRef<clang::SourceLocation>
        MotionModifiersLoc,
    clang::CXXScopeSpec& MapperIdScopeSpec,
    clang::DeclarationNameInfo& MapperId,
    clang::SourceLocation ColonLoc,
    ArrayRef<clang::Expr*> VarList,
    const clang::OMPVarListLocTy& Locs,
    ArrayRef<clang::Expr*> UnresolvedMappers)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2084

Parameters

ArrayRef<clang::OpenMPMotionModifierKind> MotionModifiers
ArrayRef<clang::SourceLocation> MotionModifiersLoc
clang::CXXScopeSpec& MapperIdScopeSpec
clang::DeclarationNameInfo& MapperId
clang::SourceLocation ColonLoc
ArrayRef<clang::Expr*> VarList
const clang::OMPVarListLocTy& Locs
ArrayRef<clang::Expr*> UnresolvedMappers

clang::OMPClause* RebuildOMPFullClause(
    clang::SourceLocation StartLoc,
    clang::SourceLocation EndLoc)

Description

Build a new OpenMP 'full' clause.

Declared at: clang/lib/Sema/TreeTransform.h:1661

Parameters

clang::SourceLocation StartLoc
clang::SourceLocation EndLoc

clang::OMPClause* RebuildOMPGrainsizeClause(
    clang::Expr* Grainsize,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2012

Parameters

clang::Expr* Grainsize
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation EndLoc

clang::OMPClause* RebuildOMPHasDeviceAddrClause(
    ArrayRef<clang::Expr*> VarList,
    const clang::OMPVarListLocTy& Locs)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2126

Parameters

ArrayRef<clang::Expr*> VarList
const clang::OMPVarListLocTy& Locs

clang::OMPClause* RebuildOMPHintClause(
    clang::Expr* Hint,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2034

Parameters

clang::Expr* Hint
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation EndLoc

clang::OMPClause* RebuildOMPIfClause(
    clang::OpenMPDirectiveKind NameModifier,
    clang::Expr* Condition,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation NameModifierLoc,
    clang::SourceLocation ColonLoc,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1599

Parameters

clang::OpenMPDirectiveKind NameModifier
clang::Expr* Condition
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation NameModifierLoc
clang::SourceLocation ColonLoc
clang::SourceLocation EndLoc

clang::OMPClause* RebuildOMPInReductionClause(
    ArrayRef<clang::Expr*> VarList,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation ColonLoc,
    clang::SourceLocation EndLoc,
    clang::CXXScopeSpec& ReductionIdScopeSpec,
    const clang::DeclarationNameInfo& ReductionId,
    ArrayRef<clang::Expr*> UnresolvedReductions)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1831

Parameters

ArrayRef<clang::Expr*> VarList
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation ColonLoc
clang::SourceLocation EndLoc
clang::CXXScopeSpec& ReductionIdScopeSpec
const clang::DeclarationNameInfo& ReductionId
ArrayRef<clang::Expr*> UnresolvedReductions

clang::OMPClause* RebuildOMPInclusiveClause(
    ArrayRef<clang::Expr*> VarList,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2162

Parameters

ArrayRef<clang::Expr*> VarList
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation EndLoc

clang::OMPClause* RebuildOMPInitClause(
    clang::Expr* InteropVar,
    ArrayRef<clang::Expr*> PrefExprs,
    bool IsTarget,
    bool IsTargetSync,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation VarLoc,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2223

Parameters

clang::Expr* InteropVar
ArrayRef<clang::Expr*> PrefExprs
bool IsTarget
bool IsTargetSync
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation VarLoc
clang::SourceLocation EndLoc

clang::OMPClause* RebuildOMPIsDevicePtrClause(
    ArrayRef<clang::Expr*> VarList,
    const clang::OMPVarListLocTy& Locs)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2117

Parameters

ArrayRef<clang::Expr*> VarList
const clang::OMPVarListLocTy& Locs

clang::ExprResult RebuildOMPIteratorExpr(
    clang::SourceLocation IteratorKwLoc,
    clang::SourceLocation LLoc,
    clang::SourceLocation RLoc,
    ArrayRef<Sema::OMPIteratorData> Data)

Description

Build a new iterator expression. By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.

Declared at: clang/lib/Sema/TreeTransform.h:2640

Parameters

clang::SourceLocation IteratorKwLoc
clang::SourceLocation LLoc
clang::SourceLocation RLoc
ArrayRef<Sema::OMPIteratorData> Data

clang::OMPClause* RebuildOMPLastprivateClause(
    ArrayRef<clang::Expr*> VarList,
    clang::OpenMPLastprivateModifier LPKind,
    clang::SourceLocation LPKindLoc,
    clang::SourceLocation ColonLoc,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1772

Parameters

ArrayRef<clang::Expr*> VarList
clang::OpenMPLastprivateModifier LPKind
clang::SourceLocation LPKindLoc
clang::SourceLocation ColonLoc
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation EndLoc

clang::OMPClause* RebuildOMPLinearClause(
    ArrayRef<clang::Expr*> VarList,
    clang::Expr* Step,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::OpenMPLinearClauseKind Modifier,
    clang::SourceLocation ModifierLoc,
    clang::SourceLocation ColonLoc,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1846

Parameters

ArrayRef<clang::Expr*> VarList
clang::Expr* Step
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::OpenMPLinearClauseKind Modifier
clang::SourceLocation ModifierLoc
clang::SourceLocation ColonLoc
clang::SourceLocation EndLoc

clang::OMPClause* RebuildOMPMapClause(
    ArrayRef<clang::OpenMPMapModifierKind>
        MapTypeModifiers,
    ArrayRef<clang::SourceLocation>
        MapTypeModifiersLoc,
    clang::CXXScopeSpec MapperIdScopeSpec,
    clang::DeclarationNameInfo MapperId,
    clang::OpenMPMapClauseKind MapType,
    bool IsMapTypeImplicit,
    clang::SourceLocation MapLoc,
    clang::SourceLocation ColonLoc,
    ArrayRef<clang::Expr*> VarList,
    const clang::OMPVarListLocTy& Locs,
    ArrayRef<clang::Expr*> UnresolvedMappers)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1948

Parameters

ArrayRef<clang::OpenMPMapModifierKind> MapTypeModifiers
ArrayRef<clang::SourceLocation> MapTypeModifiersLoc
clang::CXXScopeSpec MapperIdScopeSpec
clang::DeclarationNameInfo MapperId
clang::OpenMPMapClauseKind MapType
bool IsMapTypeImplicit
clang::SourceLocation MapLoc
clang::SourceLocation ColonLoc
ArrayRef<clang::Expr*> VarList
const clang::OMPVarListLocTy& Locs
ArrayRef<clang::Expr*> UnresolvedMappers

clang::OMPClause* RebuildOMPNocontextClause(
    clang::Expr* Condition,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2273

Parameters

clang::Expr* Condition
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation EndLoc

clang::OMPClause* RebuildOMPNontemporalClause(
    ArrayRef<clang::Expr*> VarList,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2150

Parameters

ArrayRef<clang::Expr*> VarList
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation EndLoc

clang::OMPClause* RebuildOMPNovariantsClause(
    clang::Expr* Condition,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2261

Parameters

clang::Expr* Condition
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation EndLoc

clang::OMPClause* RebuildOMPNumTasksClause(
    clang::Expr* NumTasks,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2023

Parameters

clang::Expr* NumTasks
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation EndLoc

clang::OMPClause* RebuildOMPNumTeamsClause(
    clang::Expr* NumTeams,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1978

Parameters

clang::Expr* NumTeams
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation EndLoc

clang::OMPClause* RebuildOMPNumThreadsClause(
    clang::Expr* NumThreads,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1625

Parameters

clang::Expr* NumThreads
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation EndLoc

clang::OMPClause* RebuildOMPOrderClause(
    clang::OpenMPOrderClauseKind Kind,
    clang::SourceLocation KindKwLoc,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2210

Parameters

clang::OpenMPOrderClauseKind Kind
clang::SourceLocation KindKwLoc
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation EndLoc

clang::OMPClause* RebuildOMPOrderedClause(
    clang::SourceLocation StartLoc,
    clang::SourceLocation EndLoc,
    clang::SourceLocation LParenLoc,
    clang::Expr* Num)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1738

Parameters

clang::SourceLocation StartLoc
clang::SourceLocation EndLoc
clang::SourceLocation LParenLoc
clang::Expr* Num

clang::OMPClause* RebuildOMPPartialClause(
    clang::Expr* Factor,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation EndLoc)

Description

Build a new OpenMP 'partial' clause.

Declared at: clang/lib/Sema/TreeTransform.h:1667

Parameters

clang::Expr* Factor
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation EndLoc

clang::OMPClause* RebuildOMPPriorityClause(
    clang::Expr* Priority,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2001

Parameters

clang::Expr* Priority
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation EndLoc

clang::OMPClause* RebuildOMPPrivateClause(
    ArrayRef<clang::Expr*> VarList,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1748

Parameters

ArrayRef<clang::Expr*> VarList
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation EndLoc

clang::OMPClause* RebuildOMPProcBindClause(
    llvm::omp::ProcBindKind Kind,
    clang::SourceLocation KindKwLoc,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1711

Parameters

llvm::omp::ProcBindKind Kind
clang::SourceLocation KindKwLoc
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation EndLoc

clang::OMPClause* RebuildOMPReductionClause(
    ArrayRef<clang::Expr*> VarList,
    clang::OpenMPReductionClauseModifier Modifier,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation ModifierLoc,
    clang::SourceLocation ColonLoc,
    clang::SourceLocation EndLoc,
    clang::CXXScopeSpec& ReductionIdScopeSpec,
    const clang::DeclarationNameInfo& ReductionId,
    ArrayRef<clang::Expr*> UnresolvedReductions)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1799

Parameters

ArrayRef<clang::Expr*> VarList
clang::OpenMPReductionClauseModifier Modifier
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation ModifierLoc
clang::SourceLocation ColonLoc
clang::SourceLocation EndLoc
clang::CXXScopeSpec& ReductionIdScopeSpec
const clang::DeclarationNameInfo& ReductionId
ArrayRef<clang::Expr*> UnresolvedReductions

clang::OMPClause* RebuildOMPSafelenClause(
    clang::Expr* Len,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1637

Parameters

clang::Expr* Len
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation EndLoc

clang::OMPClause* RebuildOMPScheduleClause(
    clang::OpenMPScheduleClauseModifier M1,
    clang::OpenMPScheduleClauseModifier M2,
    clang::OpenMPScheduleClauseKind Kind,
    clang::Expr* ChunkSize,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation M1Loc,
    clang::SourceLocation M2Loc,
    clang::SourceLocation KindLoc,
    clang::SourceLocation CommaLoc,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1724

Parameters

clang::OpenMPScheduleClauseModifier M1
clang::OpenMPScheduleClauseModifier M2
clang::OpenMPScheduleClauseKind Kind
clang::Expr* ChunkSize
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation M1Loc
clang::SourceLocation M2Loc
clang::SourceLocation KindLoc
clang::SourceLocation CommaLoc
clang::SourceLocation EndLoc

clang::OMPClause* RebuildOMPSharedClause(
    ArrayRef<clang::Expr*> VarList,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1787

Parameters

ArrayRef<clang::Expr*> VarList
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation EndLoc

clang::OMPClause* RebuildOMPSimdlenClause(
    clang::Expr* Len,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1647

Parameters

clang::Expr* Len
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation EndLoc

clang::OMPClause* RebuildOMPSizesClause(
    ArrayRef<clang::Expr*> Sizes,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation EndLoc)

Declared at: clang/lib/Sema/TreeTransform.h:1653

Parameters

ArrayRef<clang::Expr*> Sizes
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation EndLoc

clang::OMPClause* RebuildOMPTaskReductionClause(
    ArrayRef<clang::Expr*> VarList,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation ColonLoc,
    clang::SourceLocation EndLoc,
    clang::CXXScopeSpec& ReductionIdScopeSpec,
    const clang::DeclarationNameInfo& ReductionId,
    ArrayRef<clang::Expr*> UnresolvedReductions)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1815

Parameters

ArrayRef<clang::Expr*> VarList
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation ColonLoc
clang::SourceLocation EndLoc
clang::CXXScopeSpec& ReductionIdScopeSpec
const clang::DeclarationNameInfo& ReductionId
ArrayRef<clang::Expr*> UnresolvedReductions

clang::OMPClause* RebuildOMPThreadLimitClause(
    clang::Expr* ThreadLimit,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1989

Parameters

clang::Expr* ThreadLimit
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation EndLoc

clang::OMPClause* RebuildOMPToClause(
    ArrayRef<clang::OpenMPMotionModifierKind>
        MotionModifiers,
    ArrayRef<clang::SourceLocation>
        MotionModifiersLoc,
    clang::CXXScopeSpec& MapperIdScopeSpec,
    clang::DeclarationNameInfo& MapperId,
    clang::SourceLocation ColonLoc,
    ArrayRef<clang::Expr*> VarList,
    const clang::OMPVarListLocTy& Locs,
    ArrayRef<clang::Expr*> UnresolvedMappers)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2068

Parameters

ArrayRef<clang::OpenMPMotionModifierKind> MotionModifiers
ArrayRef<clang::SourceLocation> MotionModifiersLoc
clang::CXXScopeSpec& MapperIdScopeSpec
clang::DeclarationNameInfo& MapperId
clang::SourceLocation ColonLoc
ArrayRef<clang::Expr*> VarList
const clang::OMPVarListLocTy& Locs
ArrayRef<clang::Expr*> UnresolvedMappers

clang::OMPClause* RebuildOMPUseClause(
    clang::Expr* InteropVar,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation VarLoc,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2238

Parameters

clang::Expr* InteropVar
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation VarLoc
clang::SourceLocation EndLoc

clang::OMPClause* RebuildOMPUseDeviceAddrClause(
    ArrayRef<clang::Expr*> VarList,
    const clang::OMPVarListLocTy& Locs)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2108

Parameters

ArrayRef<clang::Expr*> VarList
const clang::OMPVarListLocTy& Locs

clang::OMPClause* RebuildOMPUseDevicePtrClause(
    ArrayRef<clang::Expr*> VarList,
    const clang::OMPVarListLocTy& Locs)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2099

Parameters

ArrayRef<clang::Expr*> VarList
const clang::OMPVarListLocTy& Locs

clang::OMPClause* RebuildOMPUsesAllocatorsClause(
    ArrayRef<Sema::UsesAllocatorsData> Data,
    clang::SourceLocation StartLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation EndLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2186

Parameters

ArrayRef<Sema::UsesAllocatorsData> Data
clang::SourceLocation StartLoc
clang::SourceLocation LParenLoc
clang::SourceLocation EndLoc

clang::ExprResult RebuildObjCArrayLiteral(
    clang::SourceRange Range,
    clang::Expr** Elements,
    unsigned int NumElements)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:3503

Parameters

clang::SourceRange Range
clang::Expr** Elements
unsigned int NumElements

clang::StmtResult RebuildObjCAtCatchStmt(
    clang::SourceLocation AtLoc,
    clang::SourceLocation RParenLoc,
    clang::VarDecl* Var,
    clang::Stmt* Body)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1547

Parameters

clang::SourceLocation AtLoc
clang::SourceLocation RParenLoc
clang::VarDecl* Var
clang::Stmt* Body

clang::StmtResult RebuildObjCAtFinallyStmt(
    clang::SourceLocation AtLoc,
    clang::Stmt* Body)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1559

Parameters

clang::SourceLocation AtLoc
clang::Stmt* Body

clang::ExprResult
RebuildObjCAtSynchronizedOperand(
    clang::SourceLocation atLoc,
    clang::Expr* object)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2318

Parameters

clang::SourceLocation atLoc
clang::Expr* object

clang::StmtResult RebuildObjCAtSynchronizedStmt(
    clang::SourceLocation AtLoc,
    clang::Expr* Object,
    clang::Stmt* Body)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2327

Parameters

clang::SourceLocation AtLoc
clang::Expr* Object
clang::Stmt* Body

clang::StmtResult RebuildObjCAtThrowStmt(
    clang::SourceLocation AtLoc,
    clang::Expr* Operand)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1568

Parameters

clang::SourceLocation AtLoc
clang::Expr* Operand

clang::StmtResult RebuildObjCAtTryStmt(
    clang::SourceLocation AtLoc,
    clang::Stmt* TryBody,
    clang::MultiStmtArg CatchStmts,
    clang::Stmt* Finally)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1523

Parameters

clang::SourceLocation AtLoc
clang::Stmt* TryBody
clang::MultiStmtArg CatchStmts
clang::Stmt* Finally

clang::StmtResult RebuildObjCAutoreleasePoolStmt(
    clang::SourceLocation AtLoc,
    clang::Stmt* Body)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2336

Parameters

clang::SourceLocation AtLoc
clang::Stmt* Body

clang::ExprResult RebuildObjCBoxedExpr(
    clang::SourceRange SR,
    clang::Expr* ValueExpr)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:3495

Parameters

clang::SourceRange SR
clang::Expr* ValueExpr

clang::ExprResult RebuildObjCDictionaryLiteral(
    clang::SourceRange Range,
    MutableArrayRef<clang::ObjCDictionaryElement>
        Elements)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:3521

Parameters

clang::SourceRange Range
MutableArrayRef<clang::ObjCDictionaryElement> Elements

clang::ExprResult RebuildObjCEncodeExpr(
    clang::SourceLocation AtLoc,
    clang::TypeSourceInfo* EncodeTypeInfo,
    clang::SourceLocation RParenLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:3530

Parameters

clang::SourceLocation AtLoc
clang::TypeSourceInfo* EncodeTypeInfo
clang::SourceLocation RParenLoc

clang::VarDecl* RebuildObjCExceptionDecl(
    clang::VarDecl* ExceptionDecl,
    clang::TypeSourceInfo* TInfo,
    clang::QualType T)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1535

Parameters

clang::VarDecl* ExceptionDecl
clang::TypeSourceInfo* TInfo
clang::QualType T

clang::StmtResult RebuildObjCForCollectionStmt(
    clang::SourceLocation ForLoc,
    clang::Stmt* Element,
    clang::Expr* Collection,
    clang::SourceLocation RParenLoc,
    clang::Stmt* Body)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2345

Parameters

clang::SourceLocation ForLoc
clang::Stmt* Element
clang::Expr* Collection
clang::SourceLocation RParenLoc
clang::Stmt* Body

clang::ExprResult RebuildObjCIsaExpr(
    clang::Expr* BaseArg,
    clang::SourceLocation IsaLoc,
    clang::SourceLocation OpLoc,
    bool IsArrow)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:3648

Parameters

clang::Expr* BaseArg
clang::SourceLocation IsaLoc
clang::SourceLocation OpLoc
bool IsArrow

clang::ExprResult RebuildObjCIvarRefExpr(
    clang::Expr* BaseArg,
    clang::ObjCIvarDecl* Ivar,
    clang::SourceLocation IvarLoc,
    bool IsArrow,
    bool IsFreeIvar)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:3593

Parameters

clang::Expr* BaseArg
clang::ObjCIvarDecl* Ivar
clang::SourceLocation IvarLoc
bool IsArrow
bool IsFreeIvar

clang::ExprResult RebuildObjCMessageExpr(
    clang::TypeSourceInfo* ReceiverTypeInfo,
    clang::Selector Sel,
    ArrayRef<clang::SourceLocation> SelectorLocs,
    clang::ObjCMethodDecl* Method,
    clang::SourceLocation LBracLoc,
    clang::MultiExprArg Args,
    clang::SourceLocation RBracLoc)

Description

Build a new Objective-C class message.

Declared at: clang/lib/Sema/TreeTransform.h:3537

Parameters

clang::TypeSourceInfo* ReceiverTypeInfo
clang::Selector Sel
ArrayRef<clang::SourceLocation> SelectorLocs
clang::ObjCMethodDecl* Method
clang::SourceLocation LBracLoc
clang::MultiExprArg Args
clang::SourceLocation RBracLoc

clang::ExprResult RebuildObjCMessageExpr(
    clang::Expr* Receiver,
    clang::Selector Sel,
    ArrayRef<clang::SourceLocation> SelectorLocs,
    clang::ObjCMethodDecl* Method,
    clang::SourceLocation LBracLoc,
    clang::MultiExprArg Args,
    clang::SourceLocation RBracLoc)

Description

Build a new Objective-C instance message.

Declared at: clang/lib/Sema/TreeTransform.h:3552

Parameters

clang::Expr* Receiver
clang::Selector Sel
ArrayRef<clang::SourceLocation> SelectorLocs
clang::ObjCMethodDecl* Method
clang::SourceLocation LBracLoc
clang::MultiExprArg Args
clang::SourceLocation RBracLoc

clang::ExprResult RebuildObjCMessageExpr(
    clang::SourceLocation SuperLoc,
    clang::Selector Sel,
    ArrayRef<clang::SourceLocation> SelectorLocs,
    clang::QualType SuperType,
    clang::ObjCMethodDecl* Method,
    clang::SourceLocation LBracLoc,
    clang::MultiExprArg Args,
    clang::SourceLocation RBracLoc)

Description

Build a new Objective-C instance/class message to 'super'.

Declared at: clang/lib/Sema/TreeTransform.h:3567

Parameters

clang::SourceLocation SuperLoc
clang::Selector Sel
ArrayRef<clang::SourceLocation> SelectorLocs
clang::QualType SuperType
clang::ObjCMethodDecl* Method
clang::SourceLocation LBracLoc
clang::MultiExprArg Args
clang::SourceLocation RBracLoc

clang::QualType RebuildObjCObjectPointerType(
    clang::QualType PointeeType,
    clang::SourceLocation Star)

Description

Build a new Objective-C object pointer type given the pointee type. By default, directly builds the pointer type, with no additional semantic analysis.

Declared at: clang/lib/Sema/TreeTransform.h:804

Parameters

clang::QualType PointeeType
clang::SourceLocation Star

clang::QualType RebuildObjCObjectType(
    clang::QualType BaseType,
    clang::SourceLocation Loc,
    clang::SourceLocation TypeArgsLAngleLoc,
    ArrayRef<clang::TypeSourceInfo*> TypeArgs,
    clang::SourceLocation TypeArgsRAngleLoc,
    clang::SourceLocation ProtocolLAngleLoc,
    ArrayRef<clang::ObjCProtocolDecl*> Protocols,
    ArrayRef<clang::SourceLocation> ProtocolLocs,
    clang::SourceLocation ProtocolRAngleLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:790

Parameters

clang::QualType BaseType
clang::SourceLocation Loc
clang::SourceLocation TypeArgsLAngleLoc
ArrayRef<clang::TypeSourceInfo*> TypeArgs
clang::SourceLocation TypeArgsRAngleLoc
clang::SourceLocation ProtocolLAngleLoc
ArrayRef<clang::ObjCProtocolDecl*> Protocols
ArrayRef<clang::SourceLocation> ProtocolLocs
clang::SourceLocation ProtocolRAngleLoc

clang::ExprResult RebuildObjCPropertyRefExpr(
    clang::Expr* Base,
    clang::QualType T,
    clang::ObjCMethodDecl* Getter,
    clang::ObjCMethodDecl* Setter,
    clang::SourceLocation PropertyLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:3632

Parameters

clang::Expr* Base
clang::QualType T
clang::ObjCMethodDecl* Getter
clang::ObjCMethodDecl* Setter
clang::SourceLocation PropertyLoc

clang::ExprResult RebuildObjCPropertyRefExpr(
    clang::Expr* BaseArg,
    clang::ObjCPropertyDecl* Property,
    clang::SourceLocation PropertyLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:3613

Parameters

clang::Expr* BaseArg
clang::ObjCPropertyDecl* Property
clang::SourceLocation PropertyLoc

clang::ExprResult RebuildObjCSubscriptRefExpr(
    clang::SourceLocation RB,
    clang::Expr* Base,
    clang::Expr* Key,
    clang::ObjCMethodDecl* getterMethod,
    clang::ObjCMethodDecl* setterMethod)

Declared at: clang/lib/Sema/TreeTransform.h:3509

Parameters

clang::SourceLocation RB
clang::Expr* Base
clang::Expr* Key
clang::ObjCMethodDecl* getterMethod
clang::ObjCMethodDecl* setterMethod

clang::QualType RebuildObjCTypeParamType(
    const clang::ObjCTypeParamDecl* Decl,
    clang::SourceLocation ProtocolLAngleLoc,
    ArrayRef<clang::ObjCProtocolDecl*> Protocols,
    ArrayRef<clang::SourceLocation> ProtocolLocs,
    clang::SourceLocation ProtocolRAngleLoc)

Declared at: clang/lib/Sema/TreeTransform.h:780

Parameters

const clang::ObjCTypeParamDecl* Decl
clang::SourceLocation ProtocolLAngleLoc
ArrayRef<clang::ObjCProtocolDecl*> Protocols
ArrayRef<clang::SourceLocation> ProtocolLocs
clang::SourceLocation ProtocolRAngleLoc

clang::ExprResult RebuildOffsetOfExpr(
    clang::SourceLocation OperatorLoc,
    clang::TypeSourceInfo* Type,
    ArrayRef<Sema::OffsetOfComponent> Components,
    clang::SourceLocation RParenLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2549

Parameters

clang::SourceLocation OperatorLoc
clang::TypeSourceInfo* Type
ArrayRef<Sema::OffsetOfComponent> Components
clang::SourceLocation RParenLoc

clang::ExprResult RebuildPackExpansion(
    clang::Expr* Pattern,
    clang::SourceLocation EllipsisLoc,
    Optional<unsigned int> NumExpansions)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:3755

Parameters

clang::Expr* Pattern
clang::SourceLocation EllipsisLoc
Optional<unsigned int> NumExpansions

clang::TemplateArgumentLoc RebuildPackExpansion(
    clang::TemplateArgumentLoc Pattern,
    clang::SourceLocation EllipsisLoc,
    Optional<unsigned int> NumExpansions)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:3707

Parameters

clang::TemplateArgumentLoc Pattern
clang::SourceLocation EllipsisLoc
Optional<unsigned int> NumExpansions

clang::QualType RebuildPackExpansionType(
    clang::QualType Pattern,
    clang::SourceRange PatternRange,
    clang::SourceLocation EllipsisLoc,
    Optional<unsigned int> NumExpansions)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1185

Parameters

clang::QualType Pattern
clang::SourceRange PatternRange
clang::SourceLocation EllipsisLoc
Optional<unsigned int> NumExpansions

clang::ExprResult RebuildParenExpr(
    clang::Expr* SubExpr,
    clang::SourceLocation LParen,
    clang::SourceLocation RParen)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2517

Parameters

clang::Expr* SubExpr
clang::SourceLocation LParen
clang::SourceLocation RParen

clang::ExprResult RebuildParenListExpr(
    clang::SourceLocation LParenLoc,
    clang::MultiExprArg SubExprs,
    clang::SourceLocation RParenLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2855

Parameters

clang::SourceLocation LParenLoc
clang::MultiExprArg SubExprs
clang::SourceLocation RParenLoc

clang::QualType RebuildParenType(
    clang::QualType InnerType)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1020

Parameters

clang::QualType InnerType

clang::QualType RebuildPipeType(
    clang::QualType ValueType,
    clang::SourceLocation KWLoc,
    bool isReadPipe)

Description

Build a new pipe type given its value type.

Declared at: clang/lib/Sema/TreeTransform.h:1200

Parameters

clang::QualType ValueType
clang::SourceLocation KWLoc
bool isReadPipe

clang::QualType RebuildPointerType(
    clang::QualType PointeeType,
    clang::SourceLocation Sigil)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:752

Parameters

clang::QualType PointeeType
clang::SourceLocation Sigil

clang::ExprResult RebuildPredefinedExpr(
    clang::SourceLocation Loc,
    PredefinedExpr::IdentKind IK)

Description

Build a new predefined expression. By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.

Declared at: clang/lib/Sema/TreeTransform.h:2482

Parameters

clang::SourceLocation Loc
PredefinedExpr::IdentKind IK

clang::QualType RebuildQualifiedType(
    clang::QualType T,
    clang::QualifiedTypeLoc TL)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:746

Parameters

clang::QualType T
clang::QualifiedTypeLoc TL

clang::QualType RebuildRecordType(
    clang::RecordDecl* Record)

Description

Build a new class/struct/union type.

Declared at: clang/lib/Sema/TreeTransform.h:953

Parameters

clang::RecordDecl* Record

clang::ExprResult RebuildRecoveryExpr(
    clang::SourceLocation BeginLoc,
    clang::SourceLocation EndLoc,
    ArrayRef<clang::Expr*> SubExprs,
    clang::QualType Type)

Declared at: clang/lib/Sema/TreeTransform.h:3798

Parameters

clang::SourceLocation BeginLoc
clang::SourceLocation EndLoc
ArrayRef<clang::Expr*> SubExprs
clang::QualType Type

clang::QualType RebuildReferenceType(
    clang::QualType ReferentType,
    bool LValue,
    clang::SourceLocation Sigil)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:768

Parameters

clang::QualType ReferentType
bool LValue
whether the type was written with an lvalue sigil or an rvalue sigil.
clang::SourceLocation Sigil

clang::ExprResult RebuildRequiresExpr(
    clang::SourceLocation RequiresKWLoc,
    clang::RequiresExprBodyDecl* Body,
    ArrayRef<clang::ParmVarDecl*> LocalParameters,
    ArrayRef<concepts::Requirement*> Requirements,
    clang::SourceLocation ClosingBraceLoc)

Description

Build a new requires expression.

By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.

Declared at: clang/lib/Sema/TreeTransform.h:3446

Parameters

clang::SourceLocation RequiresKWLoc
clang::RequiresExprBodyDecl* Body
ArrayRef<clang::ParmVarDecl*> LocalParameters
ArrayRef<concepts::Requirement*> Requirements
clang::SourceLocation ClosingBraceLoc

clang::StmtResult RebuildReturnStmt(
    clang::SourceLocation ReturnLoc,
    clang::Expr* Result)

Description

Build a new return statement. By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.

Declared at: clang/lib/Sema/TreeTransform.h:1413

Parameters

clang::SourceLocation ReturnLoc
clang::Expr* Result

clang::StmtResult RebuildSEHExceptStmt(
    clang::SourceLocation Loc,
    clang::Expr* FilterExpr,
    clang::Stmt* Block)

Declared at: clang/lib/Sema/TreeTransform.h:2462

Parameters

clang::SourceLocation Loc
clang::Expr* FilterExpr
clang::Stmt* Block

clang::StmtResult RebuildSEHFinallyStmt(
    clang::SourceLocation Loc,
    clang::Stmt* Block)

Declared at: clang/lib/Sema/TreeTransform.h:2467

Parameters

clang::SourceLocation Loc
clang::Stmt* Block

clang::StmtResult RebuildSEHTryStmt(
    bool IsCXXTry,
    clang::SourceLocation TryLoc,
    clang::Stmt* TryBlock,
    clang::Stmt* Handler)

Declared at: clang/lib/Sema/TreeTransform.h:2457

Parameters

bool IsCXXTry
clang::SourceLocation TryLoc
clang::Stmt* TryBlock
clang::Stmt* Handler

clang::ExprResult RebuildSYCLUniqueStableNameExpr(
    clang::SourceLocation OpLoc,
    clang::SourceLocation LParen,
    clang::SourceLocation RParen,
    clang::TypeSourceInfo* TSI)

Declared at: clang/lib/Sema/TreeTransform.h:2471

Parameters

clang::SourceLocation OpLoc
clang::SourceLocation LParen
clang::SourceLocation RParen
clang::TypeSourceInfo* TSI

clang::ExprResult RebuildShuffleVectorExpr(
    clang::SourceLocation BuiltinLoc,
    clang::MultiExprArg SubExprs,
    clang::SourceLocation RParenLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:3665

Parameters

clang::SourceLocation BuiltinLoc
clang::MultiExprArg SubExprs
clang::SourceLocation RParenLoc

clang::ExprResult RebuildSizeOfPackExpr(
    clang::SourceLocation OperatorLoc,
    clang::NamedDecl* Pack,
    clang::SourceLocation PackLoc,
    clang::SourceLocation RParenLoc,
    Optional<unsigned int> Length,
    ArrayRef<clang::TemplateArgument> PartialArgs)

Description

Build a new expression to compute the length of a parameter pack.

Declared at: clang/lib/Sema/TreeTransform.h:3400

Parameters

clang::SourceLocation OperatorLoc
clang::NamedDecl* Pack
clang::SourceLocation PackLoc
clang::SourceLocation RParenLoc
Optional<unsigned int> Length
ArrayRef<clang::TemplateArgument> PartialArgs

clang::ExprResult RebuildSourceLocExpr(
    SourceLocExpr::IdentKind Kind,
    clang::QualType ResultTy,
    clang::SourceLocation BuiltinLoc,
    clang::SourceLocation RPLoc,
    clang::DeclContext* ParentContext)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:3415

Parameters

SourceLocExpr::IdentKind Kind
clang::QualType ResultTy
clang::SourceLocation BuiltinLoc
clang::SourceLocation RPLoc
clang::DeclContext* ParentContext

clang::ExprResult RebuildStmtExpr(
    clang::SourceLocation LParenLoc,
    clang::Stmt* SubStmt,
    clang::SourceLocation RParenLoc,
    unsigned int TemplateDepth)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2875

Parameters

clang::SourceLocation LParenLoc
clang::Stmt* SubStmt
clang::SourceLocation RParenLoc
unsigned int TemplateDepth

clang::StmtResult RebuildSwitchStmtBody(
    clang::SourceLocation SwitchLoc,
    clang::Stmt* Switch,
    clang::Stmt* Body)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1352

Parameters

clang::SourceLocation SwitchLoc
clang::Stmt* Switch
clang::Stmt* Body

clang::StmtResult RebuildSwitchStmtStart(
    clang::SourceLocation SwitchLoc,
    clang::SourceLocation LParenLoc,
    clang::Stmt* Init,
    Sema::ConditionResult Cond,
    clang::SourceLocation RParenLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1340

Parameters

clang::SourceLocation SwitchLoc
clang::SourceLocation LParenLoc
clang::Stmt* Init
Sema::ConditionResult Cond
clang::SourceLocation RParenLoc

clang::ExprResult RebuildTemplateIdExpr(
    const clang::CXXScopeSpec& SS,
    clang::SourceLocation TemplateKWLoc,
    clang::LookupResult& R,
    bool RequiresADL,
    const clang::TemplateArgumentListInfo*
        TemplateArgs)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:3264

Parameters

const clang::CXXScopeSpec& SS
clang::SourceLocation TemplateKWLoc
clang::LookupResult& R
bool RequiresADL
const clang::TemplateArgumentListInfo* TemplateArgs

clang::TemplateName RebuildTemplateName(
    clang::CXXScopeSpec& SS,
    clang::SourceLocation TemplateKWLoc,
    const clang::IdentifierInfo& Name,
    clang::SourceLocation NameLoc,
    clang::QualType ObjectType,
    clang::NamedDecl* FirstQualifierInScope,
    bool AllowInjectedClassName)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1228

Parameters

clang::CXXScopeSpec& SS
clang::SourceLocation TemplateKWLoc
const clang::IdentifierInfo& Name
clang::SourceLocation NameLoc
clang::QualType ObjectType
clang::NamedDecl* FirstQualifierInScope
bool AllowInjectedClassName

clang::TemplateName RebuildTemplateName(
    clang::CXXScopeSpec& SS,
    clang::SourceLocation TemplateKWLoc,
    clang::OverloadedOperatorKind Operator,
    clang::SourceLocation NameLoc,
    clang::QualType ObjectType,
    bool AllowInjectedClassName)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1242

Parameters

clang::CXXScopeSpec& SS
clang::SourceLocation TemplateKWLoc
clang::OverloadedOperatorKind Operator
clang::SourceLocation NameLoc
clang::QualType ObjectType
bool AllowInjectedClassName

clang::TemplateName RebuildTemplateName(
    clang::TemplateTemplateParmDecl* Param,
    const clang::TemplateArgument& ArgPack)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1255

Parameters

clang::TemplateTemplateParmDecl* Param
const clang::TemplateArgument& ArgPack

clang::TemplateName RebuildTemplateName(
    clang::CXXScopeSpec& SS,
    bool TemplateKW,
    clang::TemplateDecl* Template)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1217

Parameters

clang::CXXScopeSpec& SS
bool TemplateKW
clang::TemplateDecl* Template

clang::QualType RebuildTemplateSpecializationType(
    clang::TemplateName Template,
    clang::SourceLocation TemplateLoc,
    clang::TemplateArgumentListInfo& Args)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:1012

Parameters

clang::TemplateName Template
clang::SourceLocation TemplateLoc
clang::TemplateArgumentListInfo& Args

clang::QualType RebuildTypeOfExprType(
    clang::Expr* Underlying,
    clang::SourceLocation Loc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:966

Parameters

clang::Expr* Underlying
clang::SourceLocation Loc

clang::QualType RebuildTypeOfType(
    clang::QualType Underlying)

Description

Build a new typeof(type) type. By default, builds a new TypeOfType with the given underlying type.

Declared at: clang/lib/Sema/TreeTransform.h:971

Parameters

clang::QualType Underlying

concepts::TypeRequirement* RebuildTypeRequirement(
    concepts::Requirement::SubstitutionDiagnostic*
        SubstDiag)

Declared at: clang/lib/Sema/TreeTransform.h:3456

Parameters

concepts::Requirement::SubstitutionDiagnostic* SubstDiag

concepts::TypeRequirement* RebuildTypeRequirement(
    clang::TypeSourceInfo* T)

Declared at: clang/lib/Sema/TreeTransform.h:3461

Parameters

clang::TypeSourceInfo* T

clang::ExprResult RebuildTypeTrait(
    clang::TypeTrait Trait,
    clang::SourceLocation StartLoc,
    ArrayRef<clang::TypeSourceInfo*> Args,
    clang::SourceLocation RParenLoc)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:3207

Parameters

clang::TypeTrait Trait
clang::SourceLocation StartLoc
ArrayRef<clang::TypeSourceInfo*> Args
clang::SourceLocation RParenLoc

clang::QualType RebuildTypedefType(
    clang::TypedefNameDecl* Typedef)

Description

Build a new typedef type.

Declared at: clang/lib/Sema/TreeTransform.h:942

Parameters

clang::TypedefNameDecl* Typedef

clang::ExprResult RebuildUnaryExprOrTypeTrait(
    clang::TypeSourceInfo* TInfo,
    clang::SourceLocation OpLoc,
    clang::UnaryExprOrTypeTrait ExprKind,
    clang::SourceRange R)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2562

Parameters

clang::TypeSourceInfo* TInfo
clang::SourceLocation OpLoc
clang::UnaryExprOrTypeTrait ExprKind
clang::SourceRange R

clang::ExprResult RebuildUnaryExprOrTypeTrait(
    clang::Expr* SubExpr,
    clang::SourceLocation OpLoc,
    clang::UnaryExprOrTypeTrait ExprKind,
    clang::SourceRange R)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2574

Parameters

clang::Expr* SubExpr
clang::SourceLocation OpLoc
clang::UnaryExprOrTypeTrait ExprKind
clang::SourceRange R

clang::ExprResult RebuildUnaryOperator(
    clang::SourceLocation OpLoc,
    clang::UnaryOperatorKind Opc,
    clang::Expr* SubExpr)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:2539

Parameters

clang::SourceLocation OpLoc
clang::UnaryOperatorKind Opc
clang::Expr* SubExpr

clang::QualType RebuildUnaryTransformType(
    clang::QualType BaseType,
    UnaryTransformType::UTTKind UKind,
    clang::SourceLocation Loc)

Description

Build a new unary transform type.

Declared at: clang/lib/Sema/TreeTransform.h:974

Parameters

clang::QualType BaseType
UnaryTransformType::UTTKind UKind
clang::SourceLocation Loc

clang::ExprResult RebuildUnresolvedMemberExpr(
    clang::Expr* BaseE,
    clang::QualType BaseType,
    clang::SourceLocation OperatorLoc,
    bool IsArrow,
    clang::NestedNameSpecifierLoc QualifierLoc,
    clang::SourceLocation TemplateKWLoc,
    clang::NamedDecl* FirstQualifierInScope,
    clang::LookupResult& R,
    const clang::TemplateArgumentListInfo*
        TemplateArgs)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:3373

Parameters

clang::Expr* BaseE
clang::QualType BaseType
clang::SourceLocation OperatorLoc
bool IsArrow
clang::NestedNameSpecifierLoc QualifierLoc
clang::SourceLocation TemplateKWLoc
clang::NamedDecl* FirstQualifierInScope
clang::LookupResult& R
const clang::TemplateArgumentListInfo* TemplateArgs

clang::QualType RebuildUnresolvedUsingType(
    clang::SourceLocation NameLoc,
    clang::Decl* D)

Description

Rebuild an unresolved typename type, given the decl that the UnresolvedUsingTypenameDecl was transformed to.

Declared at: clang/lib/Sema/TreeTransform.h:934

Parameters

clang::SourceLocation NameLoc
clang::Decl* D

clang::QualType RebuildUsingType(
    clang::UsingShadowDecl* Found,
    clang::QualType Underlying)

Description

Build a new type found via an alias.

Declared at: clang/lib/Sema/TreeTransform.h:937

Parameters

clang::UsingShadowDecl* Found
clang::QualType Underlying

clang::ExprResult RebuildVAArgExpr(
    clang::SourceLocation BuiltinLoc,
    clang::Expr* SubExpr,
    clang::TypeSourceInfo* TInfo,
    clang::SourceLocation RParenLoc)

Description

Build a new \c va_arg expression. By default, performs semantic analysis to build the new expression. Subclasses may override this routine to provide different behavior.

Declared at: clang/lib/Sema/TreeTransform.h:2843

Parameters

clang::SourceLocation BuiltinLoc
clang::Expr* SubExpr
clang::TypeSourceInfo* TInfo
clang::SourceLocation RParenLoc

clang::QualType RebuildVariableArrayType(
    clang::QualType ElementType,
    ArrayType::ArraySizeModifier SizeMod,
    clang::Expr* SizeExpr,
    unsigned int IndexTypeQuals,
    clang::SourceRange BracketsRange)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:848

Parameters

clang::QualType ElementType
ArrayType::ArraySizeModifier SizeMod
clang::Expr* SizeExpr
unsigned int IndexTypeQuals
clang::SourceRange BracketsRange

clang::QualType RebuildVectorType(
    clang::QualType ElementType,
    unsigned int NumElements,
    VectorType::VectorKind VecKind)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:870

Parameters

clang::QualType ElementType
unsigned int NumElements
VectorType::VectorKind VecKind

clang::StmtResult RebuildWhileStmt(
    clang::SourceLocation WhileLoc,
    clang::SourceLocation LParenLoc,
    Sema::ConditionResult Cond,
    clang::SourceLocation RParenLoc,
    clang::Stmt* Body)

Description

Build a new while statement. By default, performs semantic analysis to build the new statement. Subclasses may override this routine to provide different behavior.

Declared at: clang/lib/Sema/TreeTransform.h:1361

Parameters

clang::SourceLocation WhileLoc
clang::SourceLocation LParenLoc
Sema::ConditionResult Cond
clang::SourceLocation RParenLoc
clang::Stmt* Body

void RememberPartiallySubstitutedPack(
    clang::TemplateArgument Arg)

Description

"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.

Declared at: clang/lib/Sema/TreeTransform.h:303

Parameters

clang::TemplateArgument Arg

bool ReplacingOriginal()

Description

Whether the transformation is forming an expression or statement that replaces the original. In this case, we'll reuse mangling numbers from existing lambdas.

Declared at: clang/lib/Sema/TreeTransform.h:160

clang::StmtResult SkipLambdaBody(
    clang::LambdaExpr* E,
    clang::Stmt* Body)

Description

Alternative implementation of TransformLambdaBody that skips transforming the body.

Declared at: clang/lib/Sema/TreeTransform.h:696

Parameters

clang::LambdaExpr* E
clang::Stmt* Body

clang::ExprResult TransformAddressOfOperand(
    clang::Expr* E)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:708

Parameters

clang::Expr* E

const clang::Attr* TransformAttr(
    const clang::Attr* S)

Description

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 using some other mechanism.

Declared at: clang/lib/Sema/TreeTransform.h:383

Parameters

const clang::Attr* S

Returns

the transformed attribute

clang::ExprResult TransformCXXNamedCastExpr(
    clang::CXXNamedCastExpr* E)

Declared at: clang/lib/Sema/TreeTransform.h:701

Parameters

clang::CXXNamedCastExpr* E

clang::StmtResult TransformCompoundStmt(
    clang::CompoundStmt* S,
    bool IsStmtExpr)

Declared at: clang/lib/Sema/TreeTransform.h:700

Parameters

clang::CompoundStmt* S
bool IsStmtExpr

Sema::ConditionResult TransformCondition(
    clang::SourceLocation Loc,
    clang::VarDecl* Var,
    clang::Expr* Expr,
    Sema::ConditionKind Kind)

Description

Transform the specified condition. By default, this transforms the variable and expression and rebuilds the condition.

Declared at: clang/lib/Sema/TreeTransform.h:461

Parameters

clang::SourceLocation Loc
clang::VarDecl* Var
clang::Expr* Expr
Sema::ConditionKind Kind

clang::Decl* TransformDecl(
    clang::SourceLocation Loc,
    clang::Decl* D)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:448

Parameters

clang::SourceLocation Loc
clang::Decl* D

clang::DeclarationNameInfo
TransformDeclarationNameInfo(
    const clang::DeclarationNameInfo& NameInfo)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:528

Parameters

const clang::DeclarationNameInfo& NameInfo

clang::Decl* TransformDefinition(
    clang::SourceLocation Loc,
    clang::Decl* D)

Description

Transform the definition of the given declaration. By default, invokes TransformDecl() to transform the declaration. Subclasses may override this function to provide alternate behavior.

Declared at: clang/lib/Sema/TreeTransform.h:489

Parameters

clang::SourceLocation Loc
clang::Decl* D

clang::QualType TransformDependentNameType(
    clang::TypeLocBuilder& TLB,
    clang::DependentNameTypeLoc TL,
    bool DeducibleTSTContext)

Declared at: clang/lib/Sema/TreeTransform.h:3818

Parameters

clang::TypeLocBuilder& TLB
clang::DependentNameTypeLoc TL
bool DeducibleTSTContext

clang::ExprResult
TransformDependentScopeDeclRefExpr(
    clang::DependentScopeDeclRefExpr* E,
    bool IsAddressOfOperand,
    clang::TypeSourceInfo** RecoveryTSI)

Declared at: clang/lib/Sema/TreeTransform.h:710

Parameters

clang::DependentScopeDeclRefExpr* E
bool IsAddressOfOperand
clang::TypeSourceInfo** RecoveryTSI

clang::QualType
TransformDependentTemplateSpecializationType(
    clang::TypeLocBuilder& TLB,
    clang::DependentTemplateSpecializationTypeLoc
        TL,
    clang::TemplateName Template,
    clang::CXXScopeSpec& SS)

Declared at: clang/lib/Sema/TreeTransform.h:659

Parameters

clang::TypeLocBuilder& TLB
clang::DependentTemplateSpecializationTypeLoc TL
clang::TemplateName Template
clang::CXXScopeSpec& SS

clang::QualType
TransformDependentTemplateSpecializationType(
    clang::TypeLocBuilder& TLB,
    clang::DependentTemplateSpecializationTypeLoc
        TL,
    clang::NestedNameSpecifierLoc QualifierLoc)

Declared at: clang/lib/Sema/TreeTransform.h:664

Parameters

clang::TypeLocBuilder& TLB
clang::DependentTemplateSpecializationTypeLoc TL
clang::NestedNameSpecifierLoc QualifierLoc

bool TransformExceptionSpec(
    clang::SourceLocation Loc,
    FunctionProtoType::ExceptionSpecInfo& ESI,
    SmallVectorImpl<clang::QualType>& Exceptions,
    bool& Changed)

Declared at: clang/lib/Sema/TreeTransform.h:646

Parameters

clang::SourceLocation Loc
FunctionProtoType::ExceptionSpecInfo& ESI
SmallVectorImpl<clang::QualType>& Exceptions
bool& Changed

clang::ExprResult TransformExpr(clang::Expr* E)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:404

Parameters

clang::Expr* E

Returns

the transformed expression.

concepts::ExprRequirement*
TransformExprRequirement(
    concepts::ExprRequirement* Req)

Declared at: clang/lib/Sema/TreeTransform.h:535

Parameters

concepts::ExprRequirement* Req

bool TransformExprs(
    clang::Expr* const* Inputs,
    unsigned int NumInputs,
    bool IsCall,
    SmallVectorImpl<clang::Expr*>& Outputs,
    bool* ArgChanged = nullptr)

Description

Transform the given list of expressions. This routine transforms a list of expressions by invoking\c 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.

Declared at: clang/lib/Sema/TreeTransform.h:438

Parameters

clang::Expr* const* Inputs
The set of expressions to be transformed.
unsigned int NumInputs
The number of expressions in \c Inputs.
bool IsCall
If \c true, then this transform is being performed on function-call arguments, and any arguments that should be dropped, will be.
SmallVectorImpl<clang::Expr*>& Outputs
The transformed input expressions will be added to this vector.
bool* ArgChanged = nullptr
If non-NULL, will be set \c true if any argument changed due to transformation.

Returns

true if an error occurred, false otherwise.

clang::NamedDecl* TransformFirstQualifierInScope(
    clang::NamedDecl* D,
    clang::SourceLocation Loc)

Description

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 \c T in \c x->T::member By default, invokes TransformDecl() to transform the declaration. Subclasses may override this function to provide alternate behavior.

Declared at: clang/lib/Sema/TreeTransform.h:502

Parameters

clang::NamedDecl* D
clang::SourceLocation Loc

template <typename Fn>
clang::QualType TransformFunctionProtoType(
    clang::TypeLocBuilder& TLB,
    clang::FunctionProtoTypeLoc TL,
    clang::CXXRecordDecl* ThisContext,
    clang::Qualifiers ThisTypeQuals,
    Fn TransformExceptionSpec)

Declared at: clang/lib/Sema/TreeTransform.h:640

Templates

Fn

Parameters

clang::TypeLocBuilder& TLB
clang::FunctionProtoTypeLoc TL
clang::CXXRecordDecl* ThisContext
clang::Qualifiers ThisTypeQuals
Fn TransformExceptionSpec

clang::ParmVarDecl* TransformFunctionTypeParam(
    clang::ParmVarDecl* OldParm,
    int indexAdjustment,
    Optional<unsigned int> NumExpansions,
    bool ExpectParameterPack)

Description

Transforms a single function-type parameter. Return null on error.

Declared at: clang/lib/Sema/TreeTransform.h:687

Parameters

clang::ParmVarDecl* OldParm
int indexAdjustment
- A number to add to the parameter's scope index; can be negative
Optional<unsigned int> NumExpansions
bool ExpectParameterPack

bool TransformFunctionTypeParams(
    clang::SourceLocation Loc,
    ArrayRef<clang::ParmVarDecl*> Params,
    const clang::QualType* ParamTypes,
    const FunctionProtoType::ExtParameterInfo*
        ParamInfos,
    SmallVectorImpl<clang::QualType>& PTypes,
    SmallVectorImpl<clang::ParmVarDecl*>* PVars,
    Sema::ExtParameterInfoBuilder& PInfos)

Description

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. Return true on error.

Declared at: clang/lib/Sema/TreeTransform.h:675

Parameters

clang::SourceLocation Loc
ArrayRef<clang::ParmVarDecl*> Params
const clang::QualType* ParamTypes
const FunctionProtoType::ExtParameterInfo* ParamInfos
SmallVectorImpl<clang::QualType>& PTypes
SmallVectorImpl<clang::ParmVarDecl*>* PVars
Sema::ExtParameterInfoBuilder& PInfos

clang::ExprResult TransformInitializer(
    clang::Expr* Init,
    bool NotCopyInit)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:413

Parameters

clang::Expr* Init
bool NotCopyInit

Returns

the transformed initializer.

clang::StmtResult TransformLambdaBody(
    clang::LambdaExpr* E,
    clang::Stmt* Body)

Description

Transform the body of a lambda-expression.

Declared at: clang/lib/Sema/TreeTransform.h:693

Parameters

clang::LambdaExpr* E
clang::Stmt* Body

clang::NestedNameSpecifierLoc
TransformNestedNameSpecifierLoc(
    clang::NestedNameSpecifierLoc NNS,
    clang::QualType ObjectType =
        clang::QualType(),
    clang::NamedDecl* FirstQualifierInScope =
        nullptr)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:517

Parameters

clang::NestedNameSpecifierLoc NNS
clang::QualType ObjectType = clang::QualType()
clang::NamedDecl* FirstQualifierInScope = nullptr

concepts::NestedRequirement*
TransformNestedRequirement(
    concepts::NestedRequirement* Req)

Declared at: clang/lib/Sema/TreeTransform.h:537

Parameters

concepts::NestedRequirement* Req

clang::OMPClause* TransformOMPClause(
    clang::OMPClause* S)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:373

Parameters

clang::OMPClause* S

Returns

the transformed OpenMP clause.

clang::StmtResult TransformOMPExecutableDirective(
    clang::OMPExecutableDirective* S)

Declared at: clang/lib/Sema/TreeTransform.h:718

Parameters

clang::OMPExecutableDirective* S

bool TransformOverloadExprDecls(
    clang::OverloadExpr* Old,
    bool RequiresADL,
    clang::LookupResult& R)

Description

Transform the set of declarations in an OverloadExpr.

Declared at: clang/lib/Sema/TreeTransform.h:507

Parameters

clang::OverloadExpr* Old
bool RequiresADL
clang::LookupResult& R

clang::ExprResult
TransformParenDependentScopeDeclRefExpr(
    clang::ParenExpr* PE,
    clang::DependentScopeDeclRefExpr* DRE,
    bool IsAddressOfOperand,
    clang::TypeSourceInfo** RecoveryTSI)

Declared at: clang/lib/Sema/TreeTransform.h:714

Parameters

clang::ParenExpr* PE
clang::DependentScopeDeclRefExpr* DRE
bool IsAddressOfOperand
clang::TypeSourceInfo** RecoveryTSI

clang::QualType TransformReferenceType(
    clang::TypeLocBuilder& TLB,
    clang::ReferenceTypeLoc TL)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:698

Parameters

clang::TypeLocBuilder& TLB
clang::ReferenceTypeLoc TL

bool TransformRequiresExprRequirements(
    ArrayRef<concepts::Requirement*> Reqs,
    llvm::SmallVectorImpl<concepts::Requirement*>&
        Transformed)

Declared at: clang/lib/Sema/TreeTransform.h:530

Parameters

ArrayRef<concepts::Requirement*> Reqs
llvm::SmallVectorImpl<concepts::Requirement*>& Transformed

clang::StmtResult TransformSEHHandler(
    clang::Stmt* Handler)

Declared at: clang/lib/Sema/TreeTransform.h:651

Parameters

clang::Stmt* Handler

clang::StmtResult TransformStmt(
    clang::Stmt* S,
    clang::TreeTransform::StmtDiscardKind SDK =
        SDK_Discarded)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:363

Parameters

clang::Stmt* S
clang::TreeTransform::StmtDiscardKind SDK = SDK_Discarded

Returns

the transformed statement.

clang::TypeSourceInfo* TransformTSIInObjectScope(
    clang::TypeLoc TL,
    clang::QualType ObjectType,
    clang::NamedDecl* FirstQualifierInScope,
    clang::CXXScopeSpec& SS)

Declared at: clang/lib/Sema/TreeTransform.h:3814

Parameters

clang::TypeLoc TL
clang::QualType ObjectType
clang::NamedDecl* FirstQualifierInScope
clang::CXXScopeSpec& SS

bool TransformTemplateArgument(
    const clang::TemplateArgumentLoc& Input,
    clang::TemplateArgumentLoc& Output,
    bool Uneval = false)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:574

Parameters

const clang::TemplateArgumentLoc& Input
clang::TemplateArgumentLoc& Output
bool Uneval = false

bool TransformTemplateArguments(
    const clang::TemplateArgumentLoc* Inputs,
    unsigned int NumInputs,
    clang::TemplateArgumentListInfo& Outputs,
    bool Uneval = false)

Description

Transform the given set of template arguments. By default, this operation transforms all of the template arguments in the input set using \c TransformTemplateArgument(), and appends the transformed arguments to the output list. Note that this overload of \c TransformTemplateArguments() is merely a convenience function. Subclasses that wish to override this behavior should override the iterator-based member template version. Returns true if an error occurred.

Declared at: clang/lib/Sema/TreeTransform.h:596

Parameters

const clang::TemplateArgumentLoc* Inputs
The set of template arguments to be transformed.
unsigned int NumInputs
The number of template arguments in \p Inputs.
clang::TemplateArgumentListInfo& Outputs
The set of transformed template arguments output by this routine.
bool Uneval = false

template <typename InputIterator>
bool TransformTemplateArguments(
    InputIterator First,
    InputIterator Last,
    clang::TemplateArgumentListInfo& Outputs,
    bool Uneval = false)

Description

Transform the given set of template arguments. By default, this operation transforms all of the template arguments in the input set using \c TransformTemplateArgument(), and appends the transformed arguments to the output list. Returns true if an error occurred.

Declared at: clang/lib/Sema/TreeTransform.h:619

Templates

InputIterator

Parameters

InputIterator First
An iterator to the first template argument.
InputIterator Last
An iterator one step past the last template argument.
clang::TemplateArgumentListInfo& Outputs
The set of transformed template arguments output by this routine.
bool Uneval = false

unsigned int TransformTemplateDepth(
    unsigned int Depth)

Description

Transform a template parameter depth level. During a transformation that transforms template parameters, this maps an old template parameter depth to a new depth.

Declared at: clang/lib/Sema/TreeTransform.h:228

Parameters

unsigned int Depth

clang::TemplateName TransformTemplateName(
    clang::CXXScopeSpec& SS,
    clang::TemplateName Name,
    clang::SourceLocation NameLoc,
    clang::QualType ObjectType =
        clang::QualType(),
    clang::NamedDecl* FirstQualifierInScope =
        nullptr,
    bool AllowInjectedClassName = false)

Description

Transform the given template name. 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.

Declared at: clang/lib/Sema/TreeTransform.h:560

Parameters

clang::CXXScopeSpec& SS
The nested-name-specifier that qualifies the template name. This nested-name-specifier must already have been transformed.
clang::TemplateName Name
The template name to transform.
clang::SourceLocation NameLoc
The source location of the template name.
clang::QualType ObjectType = clang::QualType()
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.
clang::NamedDecl* FirstQualifierInScope = nullptr
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.
bool AllowInjectedClassName = false

clang::TemplateParameterList*
TransformTemplateParameterList(
    clang::TemplateParameterList* TPL)

Declared at: clang/lib/Sema/TreeTransform.h:703

Parameters

clang::TemplateParameterList* TPL

clang::QualType
TransformTemplateSpecializationType(
    clang::TypeLocBuilder& TLB,
    clang::TemplateSpecializationTypeLoc TL,
    clang::TemplateName Template)

Declared at: clang/lib/Sema/TreeTransform.h:654

Parameters

clang::TypeLocBuilder& TLB
clang::TemplateSpecializationTypeLoc TL
clang::TemplateName Template

clang::TypeSourceInfo* TransformType(
    clang::TypeSourceInfo* DI)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:328

Parameters

clang::TypeSourceInfo* DI

clang::QualType TransformType(clang::QualType T)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:318

Parameters

clang::QualType T

Returns

the transformed type.

clang::QualType TransformType(
    clang::TypeLocBuilder& TLB,
    clang::TypeLoc TL)

Description

Transform the given type-with-location into a new type, collecting location information in the given builder as necessary.

Declared at: clang/lib/Sema/TreeTransform.h:334

Parameters

clang::TypeLocBuilder& TLB
clang::TypeLoc TL

clang::TypeLoc TransformTypeInObjectScope(
    clang::TypeLoc TL,
    clang::QualType ObjectType,
    clang::NamedDecl* FirstQualifierInScope,
    clang::CXXScopeSpec& SS)

Declared at: clang/lib/Sema/TreeTransform.h:3804

Parameters

clang::TypeLoc TL
clang::QualType ObjectType
clang::NamedDecl* FirstQualifierInScope
clang::CXXScopeSpec& SS

clang::TypeSourceInfo* TransformTypeInObjectScope(
    clang::TypeSourceInfo* TSInfo,
    clang::QualType ObjectType,
    clang::NamedDecl* FirstQualifierInScope,
    clang::CXXScopeSpec& SS)

Declared at: clang/lib/Sema/TreeTransform.h:3809

Parameters

clang::TypeSourceInfo* TSInfo
clang::QualType ObjectType
clang::NamedDecl* FirstQualifierInScope
clang::CXXScopeSpec& SS

concepts::TypeRequirement*
TransformTypeRequirement(
    concepts::TypeRequirement* Req)

Declared at: clang/lib/Sema/TreeTransform.h:533

Parameters

concepts::TypeRequirement* Req

clang::QualType TransformTypeWithDeducedTST(
    clang::QualType T)

Description

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. @ {

Declared at: clang/lib/Sema/TreeTransform.h:343

Parameters

clang::QualType T

clang::TypeSourceInfo*
TransformTypeWithDeducedTST(
    clang::TypeSourceInfo* DI)

Declared at: clang/lib/Sema/TreeTransform.h:344

Parameters

clang::TypeSourceInfo* DI

TreeTransform<Derived>(clang::Sema& SemaRef)

Description

Initializes a new tree transformer.

Declared at: clang/lib/Sema/TreeTransform.h:129

Parameters

clang::Sema& SemaRef

bool TryExpandParameterPacks(
    clang::SourceLocation EllipsisLoc,
    clang::SourceRange PatternRange,
    ArrayRef<clang::UnexpandedParameterPack>
        Unexpanded,
    bool& ShouldExpand,
    bool& RetainExpansion,
    Optional<unsigned int>& NumExpansions)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:279

Parameters

clang::SourceLocation EllipsisLoc
The location of the ellipsis that identifies the pack expansion.
clang::SourceRange PatternRange
The source range that covers the entire pattern of the pack expansion.
ArrayRef<clang::UnexpandedParameterPack> Unexpanded
The set of unexpanded parameter packs within the pattern.
bool& ShouldExpand
Will be set to \c true if the transformer should expand the corresponding pack expansions into separate arguments. When set, \c NumExpansions must also be set.
bool& 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.
Optional<unsigned int>& 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 \c ShouldExpand is \c true; it may set this value in other cases.

Returns

true if an error occurred (e.g., because the parameter packs are to be instantiated with arguments of different lengths), false otherwise. If false, \c ShouldExpand (and possibly \c NumExpansions) must be set.

clang::DeclarationName getBaseEntity()

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:182

clang::SourceLocation getBaseLocation()

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:175

const Derived& getDerived() const

Description

Retrieves a reference to the derived class.

Declared at: clang/lib/Sema/TreeTransform.h:135

Derived& getDerived()

Description

Retrieves a reference to the derived class.

Declared at: clang/lib/Sema/TreeTransform.h:132

clang::Sema& getSema() const

Description

Retrieves a reference to the semantic analysis object used for this tree transform.

Declared at: clang/lib/Sema/TreeTransform.h:144

void setBase(clang::SourceLocation Loc,
             clang::DeclarationName Entity)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:189

Parameters

clang::SourceLocation Loc
clang::DeclarationName Entity

void transformAttrs(clang::Decl* Old,
                    clang::Decl* New)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:470

Parameters

clang::Decl* Old
clang::Decl* New

void transformedLocalDecl(
    clang::Decl* Old,
    ArrayRef<clang::Decl*> New)

Description

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.

Declared at: clang/lib/Sema/TreeTransform.h:479

Parameters

clang::Decl* Old
ArrayRef<clang::Decl*> New