Lines Matching defs:getDerived
140 Derived &getDerived() { return static_cast<Derived&>(*this); }
143 const Derived &getDerived() const {
209 OldLocation = Self.getDerived().getBaseLocation();
210 OldEntity = Self.getDerived().getBaseEntity();
213 Self.getDerived().setBase(Location, Entity);
217 Self.getDerived().setBase(OldLocation, OldEntity);
420 return getDerived().Transform##X##Attr(A); \
518 return getDerived().TransformDecl(Loc, D);
531 return cast_or_null<NamedDecl>(getDerived().TransformDecl(Loc, D));
660 getDerived().getBaseLocation());
733 return getDerived().TransformFunctionTypeParams(
751 if (getDerived().TransformFunctionTypeParams(
1142 TemplateName InstName = getDerived().RebuildTemplateName(
1158 getDerived().RebuildTemplateSpecializationType(InstName, NameLoc, Args);
3163 return getDerived().RebuildCXXStaticCastExpr(OpLoc, LAngleLoc, TInfo,
3168 return getDerived().RebuildCXXDynamicCastExpr(OpLoc, LAngleLoc, TInfo,
3173 return getDerived().RebuildCXXReinterpretCastExpr(OpLoc, LAngleLoc, TInfo,
3179 return getDerived().RebuildCXXConstCastExpr(OpLoc, LAngleLoc, TInfo,
3184 return getDerived().RebuildCXXAddrspaceCastExpr(
4096 case Stmt::Node##Class: return getDerived().Transform##Node(cast<Node>(S));
4099 return getDerived().Transform##Node(cast<Node>(S), SDK);
4110 ExprResult E = getDerived().TransformExpr(cast<Expr>(S));
4132 return getDerived().Transform##Class(cast<Class>(S));
4150 case Stmt::Node##Class: return getDerived().Transform##Node(cast<Node>(E));
4191 return getDerived().TransformExpr(Init);
4196 return getDerived().RebuildParenListExpr(Parens.getBegin(), std::nullopt,
4202 return getDerived().RebuildParenListExpr(SourceLocation(), std::nullopt,
4208 return getDerived().TransformExpr(Init);
4223 if (getDerived().TransformExprs(Construct->getArgs(), Construct->getNumArgs(),
4229 return getDerived().RebuildInitList(Construct->getBeginLoc(), NewArgs,
4241 return getDerived().RebuildParenListExpr(Parens.getBegin(), NewArgs,
4253 if (IsCall && getDerived().DropCallArgument(Inputs[I])) {
4273 if (getDerived().TryExpandParameterPacks(Expansion->getEllipsisLoc(),
4285 ExprResult OutPattern = getDerived().TransformExpr(Pattern);
4289 ExprResult Out = getDerived().RebuildPackExpansion(OutPattern.get(),
4309 ExprResult Out = getDerived().TransformExpr(Pattern);
4314 Out = getDerived().RebuildPackExpansion(
4326 ForgetPartiallySubstitutedPackRAII Forget(getDerived());
4328 ExprResult Out = getDerived().TransformExpr(Pattern);
4332 Out = getDerived().RebuildPackExpansion(
4344 IsCall ? getDerived().TransformInitializer(Inputs[I], /*DirectInit*/false)
4345 : getDerived().TransformExpr(Inputs[I]);
4363 getDerived().TransformDefinition(Var->getLocation(), Var));
4372 ExprResult CondExpr = getDerived().TransformExpr(Expr);
4415 cast_or_null<NamespaceDecl>(getDerived().TransformDecl(
4423 cast_or_null<NamespaceAliasDecl>(getDerived().TransformDecl(
4438 cast_or_null<CXXRecordDecl>(getDerived().TransformDecl(
4486 !getDerived().AlwaysRebuild())
4520 getDerived().TransformDecl(NameInfo.getLoc(), OldTemplate));
4536 NewTInfo = getDerived().TransformType(OldTInfo);
4544 QualType NewT = getDerived().TransformType(Name.getCXXNameType());
4576 = cast_or_null<TemplateDecl>(getDerived().TransformDecl(NameLoc,
4581 if (!getDerived().AlwaysRebuild() &&
4586 return getDerived().RebuildTemplateName(SS, QTN->hasTemplateKeyword(),
4597 if (!getDerived().AlwaysRebuild() &&
4606 return getDerived().RebuildTemplateName(SS,
4615 return getDerived().RebuildTemplateName(SS, TemplateKWLoc,
4623 = cast_or_null<TemplateDecl>(getDerived().TransformDecl(NameLoc,
4628 return getDerived().RebuildTemplateName(SS, /*TemplateKeyword=*/false,
4634 return getDerived().RebuildTemplateName(
4648 Arg, QualType(), getDerived().getBaseLocation());
4669 QualType NewT = getDerived().TransformType(T);
4676 ValueDecl *NewD = D ? cast_or_null<ValueDecl>(getDerived().TransformDecl(
4677 getDerived().getBaseLocation(), D))
4709 DI = getDerived().TransformType(DI);
4720 QualifierLoc = getDerived().TransformNestedNameSpecifierLoc(QualifierLoc);
4727 TemplateName Template = getDerived().TransformTemplateName(
4753 ExprResult E = getDerived().TransformExpr(InputExpr);
4869 if (getDerived().TryExpandParameterPacks(Ellipsis,
4883 if (getDerived().TransformTemplateArgument(Pattern, OutPattern, Uneval))
4886 Out = getDerived().RebuildPackExpansion(OutPattern, Ellipsis,
4900 if (getDerived().TransformTemplateArgument(Pattern, Out, Uneval))
4904 Out = getDerived().RebuildPackExpansion(Out, Ellipsis,
4916 ForgetPartiallySubstitutedPackRAII Forget(getDerived());
4918 if (getDerived().TransformTemplateArgument(Pattern, Out, Uneval))
4921 Out = getDerived().RebuildPackExpansion(Out, Ellipsis,
4933 if (getDerived().TransformTemplateArgument(In, Out, Uneval))
4949 if (getDerived().AlreadyTransformed(T))
4955 getDerived().getBaseLocation());
4957 TypeSourceInfo *NewDI = getDerived().TransformType(DI);
4969 getDerived().getBaseEntity());
4970 if (getDerived().AlreadyTransformed(DI->getType()))
4978 QualType Result = getDerived().TransformType(TLB, TL);
4992 return getDerived().Transform##CLASS##Type(TLB, \
5005 if (getDerived().AlreadyTransformed(T))
5008 getDerived().getBaseLocation());
5009 TypeSourceInfo *NewDI = getDerived().TransformTypeWithDeducedTST(DI);
5021 getDerived().getBaseEntity());
5022 if (getDerived().AlreadyTransformed(DI->getType()))
5036 QualType Result = getDerived().TransformDependentNameType(
5042 Result = getDerived().RebuildQualifiedType(Result, QTL);
5060 Result = getDerived().TransformTemplateTypeParmType(TLB, TTP,
5063 Result = getDerived().TransformSubstTemplateTypeParmPackType(
5066 Result = getDerived().TransformType(TLB, UnqualTL);
5072 Result = getDerived().RebuildQualifiedType(Result, T);
5162 if (getDerived().AlreadyTransformed(TL.getType()))
5178 if (getDerived().AlreadyTransformed(TSInfo->getType()))
5190 assert(!getDerived().AlreadyTransformed(T));
5199 TemplateName Template = getDerived().TransformTemplateName(
5205 Result = getDerived().TransformTemplateSpecializationType(TLB, SpecTL,
5212 = getDerived().RebuildTemplateName(SS,
5221 Result = getDerived().TransformDependentTemplateSpecializationType(TLB,
5227 Result = getDerived().TransformType(TLB, TL);
5264 return getDerived().TransformType(TLB, TL.getOriginalLoc());
5270 QualType OriginalType = getDerived().TransformType(TLB, TL.getOriginalLoc());
5275 if (getDerived().AlwaysRebuild() ||
5287 QualType OriginalType = getDerived().TransformType(TLB, TL.getElementLoc());
5292 if (getDerived().AlwaysRebuild() ||
5304 = getDerived().TransformType(TLB, TL.getPointeeLoc());
5321 if (getDerived().AlwaysRebuild() ||
5323 Result = getDerived().RebuildPointerType(PointeeType, TL.getSigilLoc());
5342 = getDerived().TransformType(TLB, TL.getPointeeLoc());
5347 if (getDerived().AlwaysRebuild() ||
5349 Result = getDerived().RebuildBlockPointerType(PointeeType,
5371 QualType PointeeType = getDerived().TransformType(TLB, TL.getPointeeLoc());
5376 if (getDerived().AlwaysRebuild() ||
5378 Result = getDerived().RebuildReferenceType(PointeeType,
5419 QualType PointeeType = getDerived().TransformType(TLB, TL.getPointeeLoc());
5426 NewClsTInfo = getDerived().TransformType(OldClsTInfo);
5437 NewClsType = getDerived().TransformType(OldClsType);
5443 if (getDerived().AlwaysRebuild() ||
5446 Result = getDerived().RebuildMemberPointerType(PointeeType, NewClsType,
5472 QualType ElementType = getDerived().TransformType(TLB, TL.getElementLoc());
5484 NewSize = getDerived().TransformExpr(OldSize).template getAs<Expr>();
5489 if (getDerived().AlwaysRebuild() ||
5492 Result = getDerived().RebuildConstantArrayType(ElementType,
5518 QualType ElementType = getDerived().TransformType(TLB, TL.getElementLoc());
5523 if (getDerived().AlwaysRebuild() ||
5525 Result = getDerived().RebuildIncompleteArrayType(ElementType,
5546 QualType ElementType = getDerived().TransformType(TLB, TL.getElementLoc());
5554 SizeResult = getDerived().TransformExpr(T->getSizeExpr());
5566 if (getDerived().AlwaysRebuild() ||
5569 Result = getDerived().RebuildVariableArrayType(ElementType,
5593 QualType ElementType = getDerived().TransformType(TLB, TL.getElementLoc());
5609 = getDerived().TransformExpr(origSize);
5617 if (getDerived().AlwaysRebuild() ||
5620 Result = getDerived().RebuildDependentSizedArrayType(ElementType,
5643 QualType ElementType = getDerived().TransformType(TLB, TL.getElementLoc());
5650 ExprResult Size = getDerived().TransformExpr(T->getSizeExpr());
5656 if (getDerived().AlwaysRebuild() || ElementType != T->getElementType() ||
5658 Result = getDerived().RebuildDependentVectorType(
5684 QualType ElementType = getDerived().TransformType(TLB, TL.getElementLoc());
5692 ExprResult Size = getDerived().TransformExpr(T->getSizeExpr());
5698 if (getDerived().AlwaysRebuild() ||
5701 Result = getDerived().RebuildDependentSizedExtVectorType(ElementType,
5726 QualType ElementType = getDerived().TransformType(T->getElementType());
5731 if (getDerived().AlwaysRebuild() || ElementType != T->getElementType()) {
5732 Result = getDerived().RebuildConstantMatrixType(
5752 QualType ElementType = getDerived().TransformType(T->getElementType());
5768 ExprResult rowResult = getDerived().TransformExpr(origRows);
5773 ExprResult columnResult = getDerived().TransformExpr(origColumns);
5782 if (getDerived().AlwaysRebuild() || ElementType != T->getElementType() ||
5784 Result = getDerived().RebuildDependentSizedMatrixType(
5806 QualType pointeeType = getDerived().TransformType(T->getPointeeType());
5815 ExprResult AddrSpace = getDerived().TransformExpr(T->getAddrSpaceExpr());
5821 if (getDerived().AlwaysRebuild() || pointeeType != T->getPointeeType() ||
5823 Result = getDerived().RebuildDependentAddressSpaceType(
5840 Result, getDerived().getBaseLocation());
5851 QualType ElementType = getDerived().TransformType(TLB, TL.getElementLoc());
5856 if (getDerived().AlwaysRebuild() ||
5858 Result = getDerived().RebuildVectorType(ElementType, T->getNumElements(),
5874 QualType ElementType = getDerived().TransformType(TLB, TL.getElementLoc());
5879 if (getDerived().AlwaysRebuild() ||
5881 Result = getDerived().RebuildExtVectorType(ElementType,
5911 QualType Result = getDerived().TransformType(TLB,
5928 NewDI = getDerived().TransformType(OldDI);
5987 if (getDerived().TryExpandParameterPacks(ExpansionTL.getEllipsisLoc(),
6007 getDerived().ExpandingFunctionParameterPack(OldParm);
6011 = getDerived().TransformFunctionTypeParam(OldParm,
6028 ForgetPartiallySubstitutedPackRAII Forget(getDerived());
6030 = getDerived().TransformFunctionTypeParam(OldParm,
6057 NewParm = getDerived().TransformFunctionTypeParam(OldParm,
6065 NewParm = getDerived().TransformFunctionTypeParam(
6098 if (getDerived().TryExpandParameterPacks(Loc, SourceRange(),
6111 QualType NewType = getDerived().TransformType(Pattern);
6137 ForgetPartiallySubstitutedPackRAII Forget(getDerived());
6138 QualType NewType = getDerived().TransformType(Pattern);
6154 NewType = getDerived().TransformType(OldType);
6156 NewType = getDerived().TransformType(OldType);
6189 return getDerived().TransformFunctionProtoType(
6192 return getDerived().TransformExceptionSpec(TL.getBeginLoc(), ESI,
6217 if (getDerived().TransformFunctionTypeParams(
6235 ResultType = getDerived().TransformType(TLB, TL.getReturnLoc());
6241 ResultType = getDerived().TransformType(TLB, TL.getReturnLoc());
6245 if (getDerived().TransformFunctionTypeParams(
6285 ExprResult NewExpr = getDerived().TransformExpr(CondExpr);
6323 if (getDerived().AlwaysRebuild() || ResultType != T->getReturnType() ||
6325 Result = getDerived().RebuildFunctionProtoType(ResultType, ParamTypes, EPI);
6359 ExprResult NoexceptExpr = getDerived().TransformExpr(ESI.NoexceptExpr);
6398 if (getDerived().TryExpandParameterPacks(
6408 QualType U = getDerived().TransformType(PackExpansion->getPattern());
6422 QualType U = getDerived().TransformType(PackExpansion->getPattern());
6429 QualType U = getDerived().TransformType(T);
6450 QualType ResultType = getDerived().TransformType(TLB, TL.getReturnLoc());
6455 if (getDerived().AlwaysRebuild() || ResultType != T->getReturnType())
6456 Result = getDerived().RebuildFunctionNoProtoType(ResultType);
6471 Decl *D = getDerived().TransformDecl(TL.getNameLoc(), T->getDecl());
6476 if (getDerived().AlwaysRebuild() || D != T->getDecl()) {
6477 Result = getDerived().RebuildUnresolvedUsingType(TL.getNameLoc(), D);
6495 auto *Found = cast_or_null<UsingShadowDecl>(getDerived().TransformDecl(
6500 QualType Underlying = getDerived().TransformType(T->desugar());
6505 if (getDerived().AlwaysRebuild() || Found != T->getFoundDecl() ||
6507 Result = getDerived().RebuildUsingType(Found, Underlying);
6521 = cast_or_null<TypedefNameDecl>(getDerived().TransformDecl(TL.getNameLoc(),
6527 if (getDerived().AlwaysRebuild() ||
6529 Result = getDerived().RebuildTypedefType(Typedef);
6548 ExprResult E = getDerived().TransformExpr(TL.getUnderlyingExpr());
6558 if (getDerived().AlwaysRebuild() || E.get() != TL.getUnderlyingExpr()) {
6560 getDerived().RebuildTypeOfExprType(E.get(), TL.getTypeofLoc(), Kind);
6577 TypeSourceInfo* New_Under_TI = getDerived().TransformType(Old_Under_TI);
6583 if (getDerived().AlwaysRebuild() || New_Under_TI != Old_Under_TI) {
6584 Result = getDerived().RebuildTypeOfType(New_Under_TI->getType(), Kind);
6608 ExprResult E = getDerived().TransformExpr(T->getUnderlyingExpr());
6617 if (getDerived().AlwaysRebuild() ||
6619 Result = getDerived().RebuildDecltypeType(E.get(), TL.getDecltypeLoc());
6636 ExprResult IndexExpr = getDerived().TransformExpr(TL.getIndexExpr());
6653 QualType Transformed = getDerived().TransformType(T);
6669 if (getDerived().TryExpandParameterPacks(TL.getEllipsisLoc(), SourceRange(),
6679 QualType Pack = getDerived().TransformType(TLB, TI->getTypeLoc());
6684 QualType Out = getDerived().RebuildPackIndexingType(
6699 QualType Out = getDerived().TransformType(T);
6708 ForgetPartiallySubstitutedPackRAII Forget(getDerived());
6709 QualType Out = getDerived().TransformType(T);
6720 QualType Result = getDerived().TransformType(TLB, TL.getPatternLoc());
6722 QualType Out = getDerived().RebuildPackIndexingType(
6742 getDerived().TransformType(TL.getUnderlyingTInfo());
6747 Result = getDerived().RebuildUnaryTransformType(NewBase,
6767 TemplateName TemplateName = getDerived().TransformTemplateName(
6775 NewDeduced = getDerived().TransformType(OldDeduced);
6780 QualType Result = getDerived().RebuildDeducedTemplateSpecializationType(
6797 = cast_or_null<RecordDecl>(getDerived().TransformDecl(TL.getNameLoc(),
6803 if (getDerived().AlwaysRebuild() ||
6805 Result = getDerived().RebuildRecordType(Record);
6821 = cast_or_null<EnumDecl>(getDerived().TransformDecl(TL.getNameLoc(),
6827 if (getDerived().AlwaysRebuild() ||
6829 Result = getDerived().RebuildEnumType(Enum);
6844 Decl *D = getDerived().TransformDecl(TL.getNameLoc(),
6857 return getDerived().TransformTemplateTypeParmType(
6875 getDerived().TransformDecl(TL.getNameLoc(), T->getAssociatedDecl());
6881 QualType Replacement = getDerived().TransformType(T->getReplacementType());
6900 return getDerived().TransformSubstTemplateTypeParmPackType(
6920 = getDerived().TransformTemplateName(SS, T->getTemplateName(),
6925 return getDerived().TransformTemplateSpecializationType(TLB, TL, Template);
6931 QualType ValueType = getDerived().TransformType(TLB, TL.getValueLoc());
6936 if (getDerived().AlwaysRebuild() ||
6938 Result = getDerived().RebuildAtomicType(ValueType, TL.getKWLoc());
6954 QualType ValueType = getDerived().TransformType(TLB, TL.getValueLoc());
6959 if (getDerived().AlwaysRebuild() || ValueType != TL.getValueLoc().getType()) {
6962 Result = getDerived().RebuildPipeType(ValueType, TL.getKWLoc(), isReadPipe);
6979 if (getDerived().AlwaysRebuild()) {
6980 Result = getDerived().RebuildBitIntType(EIT->isUnsigned(),
6998 ExprResult BitsExpr = getDerived().TransformExpr(EIT->getNumBitsExpr());
7006 if (getDerived().AlwaysRebuild() || BitsExpr.get() != EIT->getNumBitsExpr()) {
7007 Result = getDerived().RebuildDependentBitIntType(
7095 NewDeduced = getDerived().TransformType(OldDeduced);
7105 NewCD = cast_or_null<ConceptDecl>(getDerived().TransformDecl(
7111 if (getDerived().TransformTemplateArguments(
7118 = getDerived().TransformNestedNameSpecifierLoc(
7126 if (getDerived().AlwaysRebuild() || NewDeduced != OldDeduced ||
7133 Result = getDerived().RebuildAutoType(NewDeduced, T->getKeyword(), NewCD,
7169 if (getDerived().TransformTemplateArguments(ArgIterator(TL, 0),
7177 getDerived().RebuildTemplateSpecializationType(Template,
7224 if (getDerived().TransformTemplateArguments(ArgIterator(TL, 0),
7250 = getDerived().RebuildTemplateSpecializationType(Template,
7279 = getDerived().TransformNestedNameSpecifierLoc(TL.getQualifierLoc());
7284 QualType NamedT = getDerived().TransformType(TLB, TL.getNamedTypeLoc());
7310 if (getDerived().AlwaysRebuild() ||
7313 Result = getDerived().RebuildElaboratedType(TL.getElaboratedKeywordLoc(),
7337 const Attr *newAttr = oldAttr ? getDerived().TransformAttr(oldAttr) : nullptr;
7344 if (getDerived().AlwaysRebuild() ||
7349 getDerived().TransformType(AuxiliaryTLB, TL.getEquivalentTypeLoc());
7378 return getDerived().TransformAttributedType(
7380 return getDerived().TransformType(TLB, ModifiedLoc);
7388 QualType InnerTy = getDerived().TransformType(TLB, TL.getInnerLoc());
7395 ExprResult CountResult = getDerived().TransformExpr(OldCount);
7402 if (getDerived().AlwaysRebuild() || InnerTy != OldTy->desugar() ||
7424 QualType Inner = getDerived().TransformType(TLB, TL.getInnerLoc());
7429 if (getDerived().AlwaysRebuild() ||
7431 Result = getDerived().RebuildParenType(Inner);
7446 QualType Inner = getDerived().TransformType(TLB, TL.getInnerLoc());
7451 if (getDerived().AlwaysRebuild() || Inner != TL.getInnerLoc().getType()) {
7453 getDerived().RebuildMacroQualifiedType(Inner, TL.getMacroIdentifier());
7475 = getDerived().TransformNestedNameSpecifierLoc(TL.getQualifierLoc());
7480 = getDerived().RebuildDependentNameType(T->getKeyword(),
7512 = getDerived().TransformNestedNameSpecifierLoc(TL.getQualifierLoc());
7517 return getDerived()
7534 if (getDerived().TransformTemplateArguments(ArgIterator(TL, 0),
7539 QualType Result = getDerived().RebuildDependentTemplateSpecializationType(
7591 = getDerived().TransformType(TLB, TL.getPatternLoc());
7596 if (getDerived().AlwaysRebuild() ||
7598 Result = getDerived().RebuildPackExpansionType(Pattern,
7626 getDerived().TransformDecl(T->getDecl()->getLocation(), T->getDecl()));
7631 if (getDerived().AlwaysRebuild() ||
7633 Result = getDerived().RebuildObjCTypeParamType(
7656 QualType BaseType = getDerived().TransformType(TLB, TL.getBaseLoc());
7685 if (getDerived().TryExpandParameterPacks(
7698 QualType NewPatternType = getDerived().TransformType(TypeArgBuilder,
7720 QualType NewTypeArg = getDerived().TransformType(TypeArgBuilder,
7735 getDerived().TransformType(TypeArgBuilder, TypeArgLoc);
7751 if (getDerived().AlwaysRebuild() || AnyChanged) {
7753 Result = getDerived().RebuildObjCObjectType(
7780 QualType PointeeType = getDerived().TransformType(TLB, TL.getPointeeLoc());
7785 if (getDerived().AlwaysRebuild() ||
7787 Result = getDerived().RebuildObjCObjectPointerType(PointeeType,
7810 return getDerived().TransformCompoundStmt(S, false);
7828 StmtResult Result = getDerived().TransformStmt(
7849 if (!getDerived().AlwaysRebuild() &&
7853 return getDerived().RebuildCompoundStmt(S->getLBracLoc(),
7868 LHS = getDerived().TransformExpr(S->getLHS());
7874 RHS = getDerived().TransformExpr(S->getRHS());
7883 StmtResult Case = getDerived().RebuildCaseStmt(S->getCaseLoc(),
7893 getDerived().TransformStmt(S->getSubStmt());
7898 return getDerived().RebuildCaseStmtBody(Case.get(), SubStmt.get());
7905 getDerived().TransformStmt(S->getSubStmt());
7910 return getDerived().RebuildDefaultStmt(S->getDefaultLoc(), S->getColonLoc(),
7917 StmtResult SubStmt = getDerived().TransformStmt(S->getSubStmt(), SDK);
7921 Decl *LD = getDerived().TransformDecl(S->getDecl()->getLocation(),
7933 return getDerived().RebuildLabelStmt(S->getIdentLoc(),
7947 return getDerived().Transform##X##Attr(cast<X##Attr>(R));
7964 return getDerived().TransformStmt##X##Attr(OrigS, InstS, cast<X##Attr>(R));
7974 StmtResult SubStmt = getDerived().TransformStmt(S->getSubStmt(), SDK);
7984 getDerived().TransformStmtAttr(S->getSubStmt(), SubStmt.get(), I);
7998 return getDerived().RebuildAttributedStmt(S->getAttrLoc(), Attrs,
8006 StmtResult Init = getDerived().TransformStmt(S->getInit());
8013 Cond = getDerived().TransformCondition(
8034 Then = getDerived().TransformStmt(S->getThen());
8053 Else = getDerived().TransformStmt(S->getElse());
8065 if (!getDerived().AlwaysRebuild() &&
8072 return getDerived().RebuildIfStmt(
8081 StmtResult Init = getDerived().TransformStmt(S->getInit());
8086 Sema::ConditionResult Cond = getDerived().TransformCondition(
8094 getDerived().RebuildSwitchStmtStart(S->getSwitchLoc(), S->getLParenLoc(),
8100 StmtResult Body = getDerived().TransformStmt(S->getBody());
8105 return getDerived().RebuildSwitchStmtBody(S->getSwitchLoc(), Switch.get(),
8113 Sema::ConditionResult Cond = getDerived().TransformCondition(
8120 StmtResult Body = getDerived().TransformStmt(S->getBody());
8124 if (!getDerived().AlwaysRebuild() &&
8129 return getDerived().RebuildWhileStmt(S->getWhileLoc(), S->getLParenLoc(),
8137 StmtResult Body = getDerived().TransformStmt(S->getBody());
8142 ExprResult Cond = getDerived().TransformExpr(S->getCond());
8146 if (!getDerived().AlwaysRebuild() &&
8151 return getDerived().RebuildDoStmt(S->getDoLoc(), Body.get(), S->getWhileLoc(),
8163 StmtResult Init = getDerived().TransformStmt(S->getInit());
8174 Sema::ConditionResult Cond = getDerived().TransformCondition(
8181 ExprResult Inc = getDerived().TransformExpr(S->getInc());
8190 StmtResult Body = getDerived().TransformStmt(S->getBody());
8194 if (!getDerived().AlwaysRebuild() &&
8201 return getDerived().RebuildForStmt(S->getForLoc(), S->getLParenLoc(),
8209 Decl *LD = getDerived().TransformDecl(S->getLabel()->getLocation(),
8215 return getDerived().RebuildGotoStmt(S->getGotoLoc(), S->getLabelLoc(),
8222 ExprResult Target = getDerived().TransformExpr(S->getTarget());
8227 if (!getDerived().AlwaysRebuild() &&
8231 return getDerived().RebuildIndirectGotoStmt(S->getGotoLoc(), S->getStarLoc(),
8250 ExprResult Result = getDerived().TransformInitializer(S->getRetValue(),
8257 return getDerived().RebuildReturnStmt(S->getReturnLoc(), Result.get());
8266 Decl *Transformed = getDerived().TransformDefinition(D->getLocation(), D);
8276 if (!getDerived().AlwaysRebuild() && !DeclChanged)
8279 return getDerived().RebuildDeclStmt(Decls, S->getBeginLoc(), S->getEndLoc());
8304 ExprResult Result = getDerived().TransformExpr(OutputExpr);
8322 ExprResult Result = getDerived().TransformExpr(InputExpr);
8335 ExprResult Result = getDerived().TransformExpr(S->getLabelExpr(I));
8341 if (!getDerived().AlwaysRebuild() && !ExprsChanged)
8350 return getDerived().RebuildGCCAsmStmt(S->getAsmLoc(), S->isSimple(),
8369 ExprResult Result = getDerived().TransformExpr(SrcExprs[i]);
8379 if (!HadChange && !getDerived().AlwaysRebuild())
8382 return getDerived().RebuildMSAsmStmt(S->getAsmLoc(), S->getLBraceLoc(),
8416 getDerived().transformedLocalDecl(S->getPromiseDecl(), {Promise});
8422 StmtResult InitSuspend = getDerived().TransformStmt(S->getInitSuspendStmt());
8426 getDerived().TransformStmt(S->getFinalSuspendStmt());
8433 StmtResult BodyRes = getDerived().TransformStmt(S->getBody());
8443 ExprResult Res = getDerived().TransformInitializer(ReturnObject,
8464 StmtResult Res = getDerived().TransformStmt(OnFallthrough);
8471 StmtResult Res = getDerived().TransformStmt(OnException);
8478 StmtResult Res = getDerived().TransformStmt(OnAllocFailure);
8487 ExprResult AllocRes = getDerived().TransformExpr(S->getAllocate());
8492 ExprResult DeallocRes = getDerived().TransformExpr(S->getDeallocate());
8498 StmtResult Res = getDerived().TransformStmt(ResultDecl);
8505 StmtResult Res = getDerived().TransformStmt(ReturnStmt);
8512 return getDerived().RebuildCoroutineBodyStmt(Builder);
8518 ExprResult Result = getDerived().TransformInitializer(S->getOperand(),
8525 return getDerived().RebuildCoreturnStmt(S->getKeywordLoc(), Result.get(),
8531 ExprResult Operand = getDerived().TransformInitializer(E->getOperand(),
8547 return getDerived().RebuildCoawaitExpr(
8555 ExprResult OperandResult = getDerived().TransformInitializer(E->getOperand(),
8560 ExprResult LookupResult = getDerived().TransformUnresolvedLookupExpr(
8568 return getDerived().RebuildDependentCoawaitExpr(
8576 ExprResult Result = getDerived().TransformInitializer(E->getOperand(),
8583 return getDerived().RebuildCoyieldExpr(E->getKeywordLoc(), Result.get());
8592 StmtResult TryBody = getDerived().TransformStmt(S->getTryBody());
8600 StmtResult Catch = getDerived().TransformStmt(S->getCatchStmt(I));
8611 Finally = getDerived().TransformStmt(S->getFinallyStmt());
8617 if (!getDerived().AlwaysRebuild() &&
8624 return getDerived().RebuildObjCAtTryStmt(S->getAtTryLoc(), TryBody.get(),
8636 TSInfo = getDerived().TransformType(FromVar->getTypeSourceInfo());
8645 T = getDerived().TransformType(FromVar->getType());
8650 Var = getDerived().RebuildObjCExceptionDecl(FromVar, TSInfo, T);
8655 StmtResult Body = getDerived().TransformStmt(S->getCatchBody());
8659 return getDerived().RebuildObjCAtCatchStmt(S->getAtCatchLoc(),
8668 StmtResult Body = getDerived().TransformStmt(S->getFinallyBody());
8673 if (!getDerived().AlwaysRebuild() &&
8678 return getDerived().RebuildObjCAtFinallyStmt(S->getAtFinallyLoc(),
8687 Operand = getDerived().TransformExpr(S->getThrowExpr());
8692 if (!getDerived().AlwaysRebuild() &&
8696 return getDerived().RebuildObjCAtThrowStmt(S->getThrowLoc(), Operand.get());
8704 ExprResult Object = getDerived().TransformExpr(S->getSynchExpr());
8708 getDerived().RebuildObjCAtSynchronizedOperand(S->getAtSynchronizedLoc(),
8714 StmtResult Body = getDerived().TransformStmt(S->getSynchBody());
8719 if (!getDerived().AlwaysRebuild() &&
8725 return getDerived().RebuildObjCAtSynchronizedStmt(S->getAtSynchronizedLoc(),
8734 StmtResult Body = getDerived().TransformStmt(S->getSubStmt());
8739 if (!getDerived().AlwaysRebuild() &&
8744 return getDerived().RebuildObjCAutoreleasePoolStmt(
8754 getDerived().TransformStmt(S->getElement(), SDK_NotDiscarded);
8759 ExprResult Collection = getDerived().TransformExpr(S->getCollection());
8764 StmtResult Body = getDerived().TransformStmt(S->getBody());
8769 if (!getDerived().AlwaysRebuild() &&
8776 return getDerived().RebuildObjCForCollectionStmt(S->getForLoc(),
8789 getDerived().TransformType(ExceptionDecl->getTypeSourceInfo());
8793 Var = getDerived().RebuildExceptionDecl(
8801 StmtResult Handler = getDerived().TransformStmt(S->getHandlerBlock());
8805 if (!getDerived().AlwaysRebuild() && !Var &&
8809 return getDerived().RebuildCXXCatchStmt(S->getCatchLoc(), Var, Handler.get());
8815 StmtResult TryBlock = getDerived().TransformCompoundStmt(S->getTryBlock());
8823 StmtResult Handler = getDerived().TransformCXXCatchStmt(S->getHandler(I));
8831 if (!getDerived().AlwaysRebuild() && TryBlock.get() == S->getTryBlock() &&
8835 return getDerived().RebuildCXXTryStmt(S->getTryLoc(), TryBlock.get(),
8854 S->getInit() ? getDerived().TransformStmt(S->getInit()) : StmtResult();
8858 StmtResult Range = getDerived().TransformStmt(S->getRangeStmt());
8868 StmtResult Begin = getDerived().TransformStmt(S->getBeginStmt());
8871 StmtResult End = getDerived().TransformStmt(S->getEndStmt());
8875 ExprResult Cond = getDerived().TransformExpr(S->getCond());
8885 ExprResult Inc = getDerived().TransformExpr(S->getInc());
8891 StmtResult LoopVar = getDerived().TransformStmt(S->getLoopVarStmt());
8896 if (getDerived().AlwaysRebuild() ||
8904 NewStmt = getDerived().RebuildCXXForRangeStmt(
8916 StmtResult Body = getDerived().TransformStmt(S->getBody());
8923 NewStmt = getDerived().RebuildCXXForRangeStmt(
8945 = getDerived().TransformNestedNameSpecifierLoc(S->getQualifierLoc());
8953 NameInfo = getDerived().TransformDeclarationNameInfo(NameInfo);
8959 if (!getDerived().AlwaysRebuild() &&
8990 StmtResult SubStmt = getDerived().TransformCompoundStmt(S->getSubStmt());
8999 return getDerived().RebuildMSDependentExistsStmt(S->getKeywordLoc(),
9012 = getDerived().TransformNestedNameSpecifierLoc(E->getQualifierLoc());
9018 getDerived().TransformDecl(E->getMemberLoc(), E->getPropertyDecl()));
9022 ExprResult Base = getDerived().TransformExpr(E->getBaseExpr());
9035 auto BaseRes = getDerived().TransformExpr(E->getBase());
9038 auto IdxRes = getDerived().TransformExpr(E->getIdx());
9042 if (!getDerived().AlwaysRebuild() &&
9047 return getDerived().RebuildArraySubscriptExpr(
9053 StmtResult TryBlock = getDerived().TransformCompoundStmt(S->getTryBlock());
9057 StmtResult Handler = getDerived().TransformSEHHandler(S->getHandler());
9061 if (!getDerived().AlwaysRebuild() && TryBlock.get() == S->getTryBlock() &&
9065 return getDerived().RebuildSEHTryStmt(S->getIsCXXTry(), S->getTryLoc(),
9071 StmtResult Block = getDerived().TransformCompoundStmt(S->getBlock());
9075 return getDerived().RebuildSEHFinallyStmt(S->getFinallyLoc(), Block.get());
9080 ExprResult FilterExpr = getDerived().TransformExpr(S->getFilterExpr());
9084 StmtResult Block = getDerived().TransformCompoundStmt(S->getBlock());
9088 return getDerived().RebuildSEHExceptStmt(S->getExceptLoc(), FilterExpr.get(),
9095 return getDerived().TransformSEHFinallyStmt(cast<SEHFinallyStmt>(Handler));
9097 return getDerived().TransformSEHExceptStmt(cast<SEHExceptStmt>(Handler));
9116 return getDerived().TransformStmt(L->getLoopStmt());
9130 getDerived().getSema().OpenMP().StartOpenMPClause((*I)->getClauseKind());
9131 OMPClause *Clause = getDerived().TransformOMPClause(*I);
9132 getDerived().getSema().OpenMP().EndOpenMPClause();
9141 getDerived().getSema().OpenMP().ActOnOpenMPRegionStart(
9155 Body = getDerived().TransformStmt(CS);
9158 Body = getDerived().RebuildOMPCanonicalLoop(Body.get());
9161 getDerived().getSema().OpenMP().ActOnOpenMPRegionEnd(Body, TClauses);
9174 DirName = getDerived().TransformDeclarationNameInfo(DirName);
9183 return getDerived().RebuildOMPExecutableDirective(
9202 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9204 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9205 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9213 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9215 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9216 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9224 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9226 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9227 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9235 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9237 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9238 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9246 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9248 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9249 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9257 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9259 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9260 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9268 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9270 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9271 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9279 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9281 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9282 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9290 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9292 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9293 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9301 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9303 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9304 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9312 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9314 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9315 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9323 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9325 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9326 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9334 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9336 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9337 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9344 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9346 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9347 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9355 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9357 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9358 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9366 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9368 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9369 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9377 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9379 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9380 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9388 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9390 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9391 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9399 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9401 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9402 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9410 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9412 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9413 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9421 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9423 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9424 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9432 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9434 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9435 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9443 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9445 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9446 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9454 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9456 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9457 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9465 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9467 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9468 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9476 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9478 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9479 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9487 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9489 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9490 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9498 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9500 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9501 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9509 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9511 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9512 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9520 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9522 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9523 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9531 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9533 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9534 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9542 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9544 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9545 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9553 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9555 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9556 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9564 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9566 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9567 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9575 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9577 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9578 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9586 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9588 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9589 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9597 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9599 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9600 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9608 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9610 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9611 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9619 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9621 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9622 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9630 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9632 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9633 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9641 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9643 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9644 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9652 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9654 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9655 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9663 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9665 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9666 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9674 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9676 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9677 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9685 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9687 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9688 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9696 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9698 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9699 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9707 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9709 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9710 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9718 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9720 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9721 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9730 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9732 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9733 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9742 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9744 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9745 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9753 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9755 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9756 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9764 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9766 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9767 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9776 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9778 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9779 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9787 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9789 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9790 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9798 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9800 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9801 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9809 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9811 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9812 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9820 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9822 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9823 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9831 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9833 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9834 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9842 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9845 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9846 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9854 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9856 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9857 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9865 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9867 auto Res = getDerived().TransformOMPExecutableDirective(D);
9868 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9876 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9878 auto Res = getDerived().TransformOMPExecutableDirective(D);
9879 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9888 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9891 auto Res = getDerived().TransformOMPExecutableDirective(D);
9892 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9901 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9904 auto Res = getDerived().TransformOMPExecutableDirective(D);
9905 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9914 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9916 auto Res = getDerived().TransformOMPExecutableDirective(D);
9917 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9925 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9927 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9928 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9936 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9938 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9939 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9947 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9949 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9950 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9958 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9960 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9961 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9969 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9971 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9972 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9980 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9982 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9983 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
9991 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
9993 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9994 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
10003 getDerived().getSema().OpenMP().StartOpenMPDSABlock(
10005 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
10006 getDerived().getSema().OpenMP().EndOpenMPDSABlock(Res.get());
10015 ExprResult Cond = getDerived().TransformExpr(C->getCondition());
10018 return getDerived().RebuildOMPIfClause(
10025 ExprResult Cond = getDerived().TransformExpr(C->getCondition());
10028 return getDerived().RebuildOMPFinalClause(Cond.get(), C->getBeginLoc(),
10035 ExprResult NumThreads = getDerived().TransformExpr(C->getNumThreads());
10038 return getDerived().RebuildOMPNumThreadsClause(
10045 ExprResult E = getDerived().TransformExpr(C->getSafelen());
10048 return getDerived().RebuildOMPSafelenClause(
10055 ExprResult E = getDerived().TransformExpr(C->getAllocator());
10058 return getDerived().RebuildOMPAllocatorClause(
10065 ExprResult E = getDerived().TransformExpr(C->getSimdlen());
10068 return getDerived().RebuildOMPSimdlenClause(
10083 ExprResult T = getDerived().TransformExpr(E);
10091 if (!Changed && !getDerived().AlwaysRebuild())
10099 if (!getDerived().AlwaysRebuild())
10107 ExprResult T = getDerived().TransformExpr(C->getFactor());
10113 if (!Changed && !getDerived().AlwaysRebuild())
10122 ExprResult E = getDerived().TransformExpr(C->getNumForLoops());
10125 return getDerived().RebuildOMPCollapseClause(
10132 return getDerived().RebuildOMPDefaultClause(
10140 return getDerived().RebuildOMPProcBindClause(
10148 ExprResult E = getDerived().TransformExpr(C->getChunkSize());
10151 return getDerived().RebuildOMPScheduleClause(
10163 E = getDerived().TransformExpr(Num);
10167 return getDerived().RebuildOMPOrderedClause(C->getBeginLoc(), C->getEndLoc(),
10176 E = getDerived().TransformExpr(Evt);
10180 return getDerived().RebuildOMPDetachClause(E.get(), C->getBeginLoc(),
10307 ExprResult IVR = getDerived().TransformExpr(C->getInteropVar());
10314 ExprResult ER = getDerived().TransformExpr(cast<Expr>(E));
10319 return getDerived().RebuildOMPInitClause(IVR.get(), InteropInfo,
10326 ExprResult ER = getDerived().TransformExpr(C->getInteropVar());
10329 return getDerived().RebuildOMPUseClause(ER.get(), C->getBeginLoc(),
10339 ER = getDerived().TransformExpr(IV);
10343 return getDerived().RebuildOMPDestroyClause(ER.get(), C->getBeginLoc(),
10351 ExprResult Cond = getDerived().TransformExpr(C->getCondition());
10354 return getDerived().RebuildOMPNovariantsClause(
10361 ExprResult Cond = getDerived().TransformExpr(C->getCondition());
10364 return getDerived().RebuildOMPNocontextClause(
10371 ExprResult ThreadID = getDerived().TransformExpr(C->getThreadID());
10374 return getDerived().RebuildOMPFilterClause(ThreadID.get(), C->getBeginLoc(),
10380 ExprResult E = getDerived().TransformExpr(C->getAlignment());
10383 return getDerived().RebuildOMPAlignClause(E.get(), C->getBeginLoc(),
10422 return getDerived().RebuildOMPAtClause(C->getAtKind(), C->getAtKindKwLoc(),
10430 return getDerived().RebuildOMPSeverityClause(
10438 ExprResult E = getDerived().TransformExpr(C->getMessageString());
10441 return getDerived().RebuildOMPMessageClause(
10452 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
10457 return getDerived().RebuildOMPPrivateClause(
10467 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
10472 return getDerived().RebuildOMPFirstprivateClause(
10482 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
10487 return getDerived().RebuildOMPLastprivateClause(
10498 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
10503 return getDerived().RebuildOMPSharedClause(Vars, C->getBeginLoc(),
10513 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
10523 NameInfo = getDerived().TransformDeclarationNameInfo(NameInfo);
10537 cast<NamedDecl>(getDerived().TransformDecl(E->getExprLoc(), D));
10548 return getDerived().RebuildOMPReductionClause(
10560 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
10570 NameInfo = getDerived().TransformDeclarationNameInfo(NameInfo);
10584 cast<NamedDecl>(getDerived().TransformDecl(E->getExprLoc(), D));
10595 return getDerived().RebuildOMPTaskReductionClause(
10606 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
10616 NameInfo = getDerived().TransformDeclarationNameInfo(NameInfo);
10630 cast<NamedDecl>(getDerived().TransformDecl(E->getExprLoc(), D));
10641 return getDerived().RebuildOMPInReductionClause(
10652 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
10657 ExprResult Step = getDerived().TransformExpr(C->getStep());
10660 return getDerived().RebuildOMPLinearClause(
10672 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
10677 ExprResult Alignment = getDerived().TransformExpr(C->getAlignment());
10680 return getDerived().RebuildOMPAlignedClause(
10691 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
10696 return getDerived().RebuildOMPCopyinClause(Vars, C->getBeginLoc(),
10706 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
10711 return getDerived().RebuildOMPCopyprivateClause(
10720 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
10725 return getDerived().RebuildOMPFlushClause(Vars, C->getBeginLoc(),
10732 ExprResult E = getDerived().TransformExpr(C->getDepobj());
10735 return getDerived().RebuildOMPDepobjClause(E.get(), C->getBeginLoc(),
10745 ExprResult DepModRes = getDerived().TransformExpr(DepModifier);
10752 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
10757 return getDerived().RebuildOMPDependClause(
10766 ExprResult E = getDerived().TransformExpr(C->getDevice());
10769 return getDerived().RebuildOMPDeviceClause(
10783 ExprResult EVar = TT.getDerived().TransformExpr(cast<Expr>(VE));
10791 QualifierLoc = TT.getDerived().TransformNestedNameSpecifierLoc(
10799 MapperIdInfo = TT.getDerived().TransformDeclarationNameInfo(MapperIdInfo);
10812 cast<NamedDecl>(TT.getDerived().TransformDecl(E->getExprLoc(), D));
10833 ExprResult MapModRes = getDerived().TransformExpr(IteratorModifier);
10844 return getDerived().RebuildOMPMapClause(
10855 ExprResult AllocatorRes = getDerived().TransformExpr(Allocator);
10863 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
10868 return getDerived().RebuildOMPAllocateClause(
10876 ExprResult E = getDerived().TransformExpr(C->getNumTeams());
10879 return getDerived().RebuildOMPNumTeamsClause(
10886 ExprResult E = getDerived().TransformExpr(C->getThreadLimit());
10889 return getDerived().RebuildOMPThreadLimitClause(
10896 ExprResult E = getDerived().TransformExpr(C->getPriority());
10899 return getDerived().RebuildOMPPriorityClause(
10906 ExprResult E = getDerived().TransformExpr(C->getGrainsize());
10909 return getDerived().RebuildOMPGrainsizeClause(
10917 ExprResult E = getDerived().TransformExpr(C->getNumTasks());
10920 return getDerived().RebuildOMPNumTasksClause(
10927 ExprResult E = getDerived().TransformExpr(C->getHint());
10930 return getDerived().RebuildOMPHintClause(E.get(), C->getBeginLoc(),
10937 ExprResult E = getDerived().TransformExpr(C->getChunkSize());
10940 return getDerived().RebuildOMPDistScheduleClause(
10950 return getDerived().RebuildOMPDefaultmapClause(C->getDefaultmapModifier(),
10969 return getDerived().RebuildOMPToClause(
10984 return getDerived().RebuildOMPFromClause(
10995 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
11001 return getDerived().RebuildOMPUseDevicePtrClause(Vars, Locs);
11010 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
11016 return getDerived().RebuildOMPUseDeviceAddrClause(Vars, Locs);
11025 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
11031 return getDerived().RebuildOMPIsDevicePtrClause(Vars, Locs);
11040 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
11046 return getDerived().RebuildOMPHasDeviceAddrClause(Vars, Locs);
11055 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
11060 return getDerived().RebuildOMPNontemporalClause(
11070 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
11075 return getDerived().RebuildOMPInclusiveClause(
11085 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
11090 return getDerived().RebuildOMPExclusiveClause(
11101 ExprResult Allocator = getDerived().TransformExpr(D.Allocator);
11106 AllocatorTraits = getDerived().TransformExpr(AT);
11116 return getDerived().RebuildOMPUsesAllocatorsClause(
11127 ModifierRes = getDerived().TransformExpr(Modifier);
11132 ExprResult Locator = getDerived().TransformExpr(E);
11137 return getDerived().RebuildOMPAffinityClause(
11144 return getDerived().RebuildOMPOrderClause(
11151 return getDerived().RebuildOMPBindClause(
11159 ExprResult Size = getDerived().TransformExpr(C->getSize());
11162 return getDerived().RebuildOMPXDynCGroupMemClause(
11172 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
11177 return getDerived().RebuildOMPDoacrossClause(
11187 NewAttrs.push_back(getDerived().TransformAttr(A));
11188 return getDerived().RebuildOMPXAttributeClause(
11194 return getDerived().RebuildOMPXBareClause(C->getBeginLoc(), C->getEndLoc());
11647 if (OpenACCClause *TransformedClause = getDerived().TransformOpenACCClause(
11664 getDerived().TransformOpenACCClauseList(C->getDirectiveKind(),
11669 StmtResult StrBlock = getDerived().TransformStmt(C->getStructuredBlock());
11673 return getDerived().RebuildOpenACCComputeConstruct(
11689 getDerived().TransformOpenACCClauseList(C->getDirectiveKind(),
11695 StmtResult Loop = getDerived().TransformStmt(C->getLoop());
11699 return getDerived().RebuildOpenACCLoopConstruct(
11719 TypeSourceInfo *NewT = getDerived().TransformType(E->getTypeSourceInfo());
11724 if (!getDerived().AlwaysRebuild() && E->getTypeSourceInfo() == NewT)
11727 return getDerived().RebuildSYCLUniqueStableNameExpr(
11737 return getDerived().RebuildPredefinedExpr(E->getLocation(),
11747 = getDerived().TransformNestedNameSpecifierLoc(E->getQualifierLoc());
11753 = cast_or_null<ValueDecl>(getDerived().TransformDecl(E->getLocation(),
11761 getDerived().TransformDecl(E->getLocation(), E->getFoundDecl()));
11768 NameInfo = getDerived().TransformDeclarationNameInfo(NameInfo);
11773 if (!getDerived().AlwaysRebuild() &&
11792 if (getDerived().TransformTemplateArguments(E->getTemplateArgs(),
11798 return getDerived().RebuildDeclRefExpr(QualifierLoc, ND, NameInfo,
11841 return getDerived().TransformCallExpr(E);
11850 ControllingExpr = getDerived().TransformExpr(E->getControllingExpr());
11852 ControllingType = getDerived().TransformType(E->getControllingType());
11862 TypeSourceInfo *AssocType = getDerived().TransformType(TSI);
11871 getDerived().TransformExpr(Assoc.getAssociationExpr());
11878 return getDerived().RebuildGenericSelectionExpr(E->getGenericLoc(),
11884 return getDerived().RebuildGenericSelectionExpr(
11892 ExprResult SubExpr = getDerived().TransformExpr(E->getSubExpr());
11896 if (!getDerived().AlwaysRebuild() && SubExpr.get() == E->getSubExpr())
11899 return getDerived().RebuildParenExpr(SubExpr.get(), E->getLParen(),
11910 return getDerived().TransformDependentScopeDeclRefExpr(
11913 return getDerived().TransformUnresolvedLookupExpr(
11916 return getDerived().TransformExpr(E);
11930 if (!getDerived().AlwaysRebuild() && SubExpr.get() == E->getSubExpr())
11933 return getDerived().RebuildUnaryOperator(E->getOperatorLoc(),
11942 TypeSourceInfo *Type = getDerived().TransformType(E->getTypeSourceInfo());
11964 ExprResult Index = getDerived().TransformExpr(FromIndex);
11992 if (!getDerived().AlwaysRebuild() &&
11998 return getDerived().RebuildOffsetOfExpr(E->getOperatorLoc(), Type,
12005 assert((!E->getSourceExpr() || getDerived().AlreadyTransformed(E->getType())) &&
12021 ExprResult NewC = getDerived().TransformExpr(C);
12028 if (!getDerived().AlwaysRebuild() && !Changed)
12030 return getDerived().RebuildRecoveryExpr(E->getBeginLoc(), E->getEndLoc(),
12044 ExprResult result = getDerived().TransformExpr(newSyntacticForm);
12063 TypeSourceInfo *NewT = getDerived().TransformType(OldT);
12067 if (!getDerived().AlwaysRebuild() && OldT == NewT)
12070 return getDerived().RebuildUnaryExprOrTypeTrait(NewT, E->getOperatorLoc(),
12089 SubExpr = getDerived().TransformParenDependentScopeDeclRefExpr(
12092 SubExpr = getDerived().TransformExpr(E->getArgumentExpr());
12095 return getDerived().RebuildUnaryExprOrTypeTrait(
12100 if (!getDerived().AlwaysRebuild() && SubExpr.get() == E->getArgumentExpr())
12103 return getDerived().RebuildUnaryExprOrTypeTrait(SubExpr.get(),
12112 ExprResult LHS = getDerived().TransformExpr(E->getLHS());
12116 ExprResult RHS = getDerived().TransformExpr(E->getRHS());
12121 if (!getDerived().AlwaysRebuild() &&
12126 return getDerived().RebuildArraySubscriptExpr(
12134 ExprResult Base = getDerived().TransformExpr(E->getBase());
12138 ExprResult RowIdx = getDerived().TransformExpr(E->getRowIdx());
12142 ExprResult ColumnIdx = getDerived().TransformExpr(E->getColumnIdx());
12146 if (!getDerived().AlwaysRebuild() && Base.get() == E->getBase() &&
12150 return getDerived().RebuildMatrixSubscriptExpr(
12157 ExprResult Base = getDerived().TransformExpr(E->getBase());
12163 LowerBound = getDerived().TransformExpr(E->getLowerBound());
12170 Length = getDerived().TransformExpr(E->getLength());
12178 Stride = getDerived().TransformExpr(Str);
12184 if (!getDerived().AlwaysRebuild() && Base.get() == E->getBase() &&
12190 return getDerived().RebuildArraySectionExpr(
12200 ExprResult Base = getDerived().TransformExpr(E->getBase());
12207 ExprResult DimRes = getDerived().TransformExpr(Dim);
12217 return getDerived().RebuildOMPArrayShapingExpr(Base.get(), E->getLParenLoc(),
12229 bool NeedToRebuild = getDerived().AlwaysRebuild();
12238 TypeSourceInfo *TSI = getDerived().TransformType(D->getTypeSourceInfo());
12239 QualType DeclTy = getDerived().TransformType(D->getType());
12243 ExprResult Begin = getDerived().TransformExpr(Range.Begin);
12244 ExprResult End = getDerived().TransformExpr(Range.End);
12245 ExprResult Step = getDerived().TransformExpr(Range.Step);
12270 ExprResult Res = getDerived().RebuildOMPIteratorExpr(
12276 getDerived().transformedLocalDecl(E->getIteratorDecl(I),
12285 ExprResult Callee = getDerived().TransformExpr(E->getCallee());
12292 if (getDerived().TransformExprs(E->getArgs(), E->getNumArgs(), true, Args,
12296 if (!getDerived().AlwaysRebuild() &&
12313 return getDerived().RebuildCallExpr(Callee.get(), FakeLParenLoc,
12321 ExprResult Base = getDerived().TransformExpr(E->getBase());
12328 = getDerived().TransformNestedNameSpecifierLoc(E->getQualifierLoc());
12336 = cast_or_null<ValueDecl>(getDerived().TransformDecl(E->getMemberLoc(),
12346 getDerived().TransformDecl(E->getMemberLoc(), FoundDecl));
12351 if (!getDerived().AlwaysRebuild() &&
12374 if (getDerived().TransformTemplateArguments(E->getTemplateArgs(),
12391 MemberNameInfo = getDerived().TransformDeclarationNameInfo(MemberNameInfo);
12396 return getDerived().RebuildMemberExpr(Base.get(), FakeOperatorLoc,
12411 ExprResult LHS = getDerived().TransformExpr(E->getLHS());
12416 getDerived().TransformInitializer(E->getRHS(), /*NotCopyInit=*/false);
12420 if (!getDerived().AlwaysRebuild() &&
12427 return getDerived().RebuildBinaryOperator(
12434 return getDerived().RebuildBinaryOperator(E->getOperatorLoc(), E->getOpcode(),
12443 ExprResult LHS = getDerived().TransformExpr(const_cast<Expr*>(Decomp.LHS));
12447 ExprResult RHS = getDerived().TransformExpr(const_cast<Expr*>(Decomp.RHS));
12467 NamedDecl *Found = cast_or_null<NamedDecl>(getDerived().TransformDecl(
12476 if (!getDerived().AlwaysRebuild() && !ChangedAnyLookups &&
12488 return getDerived().RebuildCXXRewrittenBinaryOperator(
12501 return getDerived().TransformBinaryOperator(E);
12510 ExprResult commonExpr = getDerived().TransformExpr(e->getCommon());
12514 ExprResult rhs = getDerived().TransformExpr(e->getFalseExpr());
12518 if (!getDerived().AlwaysRebuild() &&
12523 return getDerived().RebuildConditionalOperator(commonExpr.get(),
12533 ExprResult Cond = getDerived().TransformExpr(E->getCond());
12537 ExprResult LHS = getDerived().TransformExpr(E->getLHS());
12541 ExprResult RHS = getDerived().TransformExpr(E->getRHS());
12545 if (!getDerived().AlwaysRebuild() &&
12551 return getDerived().RebuildConditionalOperator(Cond.get(),
12563 return getDerived().TransformExpr(E->getSubExprAsWritten());
12569 TypeSourceInfo *Type = getDerived().TransformType(E->getTypeInfoAsWritten());
12574 = getDerived().TransformExpr(E->getSubExprAsWritten());
12578 if (!getDerived().AlwaysRebuild() &&
12583 return getDerived().RebuildCStyleCastExpr(E->getLParenLoc(),
12593 TypeSourceInfo *NewT = getDerived().TransformType(OldT);
12597 ExprResult Init = getDerived().TransformExpr(E->getInitializer());
12601 if (!getDerived().AlwaysRebuild() &&
12610 return getDerived().RebuildCompoundLiteralExpr(
12618 ExprResult Base = getDerived().TransformExpr(E->getBase());
12622 if (!getDerived().AlwaysRebuild() &&
12629 return getDerived().RebuildExtVectorElementExpr(
12646 if (getDerived().TransformExprs(E->getInits(), E->getNumInits(), false,
12650 if (!getDerived().AlwaysRebuild() && !InitChanged) {
12657 return getDerived().RebuildInitList(E->getLBraceLoc(), Inits,
12667 ExprResult Init = getDerived().TransformExpr(E->getInit());
12678 getDerived().TransformDecl(D.getFieldLoc(), D.getFieldDecl()));
12697 ExprResult Index = getDerived().TransformExpr(E->getArrayIndex(D));
12711 = getDerived().TransformExpr(E->getArrayRangeStart(D));
12715 ExprResult End = getDerived().TransformExpr(E->getArrayRangeEnd(D));
12729 if (!getDerived().AlwaysRebuild() &&
12734 return getDerived().RebuildDesignatedInitExpr(Desig, ArrayExprs,
12780 QualType T = getDerived().TransformType(E->getType());
12784 if (!getDerived().AlwaysRebuild() &&
12788 return getDerived().RebuildImplicitValueInitExpr(T);
12794 TypeSourceInfo *TInfo = getDerived().TransformType(E->getWrittenTypeInfo());
12798 ExprResult SubExpr = getDerived().TransformExpr(E->getSubExpr());
12802 if (!getDerived().AlwaysRebuild() &&
12807 return getDerived().RebuildVAArgExpr(E->getBuiltinLoc(), SubExpr.get(),
12820 return getDerived().RebuildParenListExpr(E->getLParenLoc(),
12833 Decl *LD = getDerived().TransformDecl(E->getLabel()->getLocation(),
12838 return getDerived().RebuildAddrLabelExpr(E->getAmpAmpLoc(), E->getLabelLoc(),
12847 = getDerived().TransformCompoundStmt(E->getSubStmt(), true);
12854 unsigned NewDepth = getDerived().TransformTemplateDepth(OldDepth);
12856 if (!getDerived().AlwaysRebuild() && OldDepth == NewDepth &&
12863 return getDerived().RebuildStmtExpr(E->getLParenLoc(), SubStmt.get(),
12870 ExprResult Cond = getDerived().TransformExpr(E->getCond());
12874 ExprResult LHS = getDerived().TransformExpr(E->getLHS());
12878 ExprResult RHS = getDerived().TransformExpr(E->getRHS());
12882 if (!getDerived().AlwaysRebuild() &&
12888 return getDerived().RebuildChooseExpr(E->getBuiltinLoc(),
12915 ExprResult Object = getDerived().TransformExpr(E->getArg(0));
12925 if (getDerived().TransformExprs(E->getArgs() + 1, E->getNumArgs() - 1, true,
12930 return getDerived().RebuildCxxSubscriptExpr(Object.get(), FakeLParenLoc,
12933 return getDerived().RebuildCallExpr(Object.get(), FakeLParenLoc, Args,
12954 First = getDerived().TransformAddressOfOperand(E->getArg(0));
12956 First = getDerived().TransformExpr(E->getArg(0));
12963 getDerived().TransformInitializer(E->getArg(1), /*NotCopyInit=*/false);
12978 if (getDerived().TransformOverloadExprDecls(ULE, ULE->requiresADL(), R))
12981 return getDerived().RebuildCXXOperatorCallExpr(
12991 getDerived().TransformDecl(DR->getLocation(), DR));
12998 return getDerived().RebuildCXXOperatorCallExpr(
13006 return getDerived().TransformCallExpr(E);
13014 if (!getDerived().AlwaysRebuild() && !NeedRebuildFunc)
13017 return getDerived().RebuildSourceLocExpr(E->getIdentKind(), E->getType(),
13031 ExprResult Callee = getDerived().TransformExpr(E->getCallee());
13036 ExprResult EC = getDerived().TransformCallExpr(E->getConfig());
13043 if (getDerived().TransformExprs(E->getArgs(), E->getNumArgs(), true, Args,
13047 if (!getDerived().AlwaysRebuild() &&
13055 return getDerived().RebuildCallExpr(Callee.get(), FakeLParenLoc,
13063 TypeSourceInfo *Type = getDerived().TransformType(E->getTypeInfoAsWritten());
13068 = getDerived().TransformExpr(E->getSubExprAsWritten());
13072 if (!getDerived().AlwaysRebuild() &&
13076 return getDerived().RebuildCXXNamedCastExpr(
13087 getDerived().TransformType(BCE->getTypeInfoAsWritten());
13091 ExprResult Sub = getDerived().TransformExpr(BCE->getSubExpr());
13095 return getDerived().RebuildBuiltinBitCastExpr(BCE->getBeginLoc(), TSI,
13102 return getDerived().TransformCXXNamedCastExpr(E);
13108 return getDerived().TransformCXXNamedCastExpr(E);
13115 return getDerived().TransformCXXNamedCastExpr(E);
13121 return getDerived().TransformCXXNamedCastExpr(E);
13127 return getDerived().TransformCXXNamedCastExpr(E);
13135 getDerived().TransformTypeWithDeducedTST(E->getTypeInfoAsWritten());
13140 = getDerived().TransformExpr(E->getSubExprAsWritten());
13144 if (!getDerived().AlwaysRebuild() &&
13149 return getDerived().RebuildCXXFunctionalCastExpr(Type,
13161 = getDerived().TransformType(E->getTypeOperandSourceInfo());
13165 if (!getDerived().AlwaysRebuild() &&
13169 return getDerived().RebuildCXXTypeidExpr(E->getType(), E->getBeginLoc(),
13186 ExprResult SubExpr = getDerived().TransformExpr(Op);
13190 if (!getDerived().AlwaysRebuild() &&
13194 return getDerived().RebuildCXXTypeidExpr(E->getType(), E->getBeginLoc(),
13203 = getDerived().TransformType(E->getTypeOperandSourceInfo());
13207 if (!getDerived().AlwaysRebuild() &&
13211 return getDerived().RebuildCXXUuidofExpr(E->getType(), E->getBeginLoc(),
13218 ExprResult SubExpr = getDerived().TransformExpr(E->getExprOperand());
13222 if (!getDerived().AlwaysRebuild() &&
13226 return getDerived().RebuildCXXUuidofExpr(E->getType(), E->getBeginLoc(),
13261 return getDerived().TransformType(E->getType());
13265 if (!getDerived().AlwaysRebuild() && T == E->getType()) {
13272 return getDerived().RebuildCXXThisExpr(E->getBeginLoc(), T, E->isImplicit());
13278 ExprResult SubExpr = getDerived().TransformExpr(E->getSubExpr());
13282 if (!getDerived().AlwaysRebuild() &&
13286 return getDerived().RebuildCXXThrowExpr(E->getThrowLoc(), SubExpr.get(),
13294 getDerived().TransformDecl(E->getBeginLoc(), E->getParam()));
13300 InitRes = getDerived().TransformExpr(E->getRewrittenExpr());
13305 if (!getDerived().AlwaysRebuild() && Param == E->getParam() &&
13310 return getDerived().RebuildCXXDefaultArgExpr(E->getUsedLocation(), Param,
13318 getDerived().TransformDecl(E->getBeginLoc(), E->getField()));
13322 if (!getDerived().AlwaysRebuild() && Field == E->getField() &&
13326 return getDerived().RebuildCXXDefaultInitExpr(E->getExprLoc(), Field);
13333 TypeSourceInfo *T = getDerived().TransformType(E->getTypeSourceInfo());
13337 if (!getDerived().AlwaysRebuild() &&
13341 return getDerived().RebuildCXXScalarValueInitExpr(T,
13351 getDerived().TransformTypeWithDeducedTST(E->getAllocatedTypeSourceInfo());
13360 NewArraySize = getDerived().TransformExpr(*OldArraySize);
13370 if (getDerived().TransformExprs(E->getPlacementArgs(),
13379 NewInit = getDerived().TransformInitializer(OldInit, true);
13387 getDerived().TransformDecl(E->getBeginLoc(), E->getOperatorNew()));
13395 getDerived().TransformDecl(E->getBeginLoc(), E->getOperatorDelete()));
13400 if (!getDerived().AlwaysRebuild() &&
13453 return getDerived().RebuildCXXNewExpr(
13463 ExprResult Operand = getDerived().TransformExpr(E->getArgument());
13471 getDerived().TransformDecl(E->getBeginLoc(), E->getOperatorDelete()));
13476 if (!getDerived().AlwaysRebuild() &&
13497 return getDerived().RebuildCXXDeleteExpr(
13505 ExprResult Base = getDerived().TransformExpr(E->getBase());
13523 = getDerived().TransformNestedNameSpecifierLoc(QualifierLoc, ObjectType);
13533 = getDerived().TransformTypeInObjectScope(E->getDestroyedTypeInfo(),
13559 ScopeTypeInfo = getDerived().TransformTypeInObjectScope(
13565 return getDerived().RebuildCXXPseudoDestructorExpr(Base.get(),
13582 Decl *InstD = getDerived().TransformDecl(Old->getNameLoc(), OldD);
13672 = getDerived().TransformNestedNameSpecifierLoc(Old->getQualifierLoc());
13681 = cast_or_null<CXXRecordDecl>(getDerived().TransformDecl(
13696 getDerived().TransformTemplateArguments(Old->getTemplateArgs(),
13717 return getDerived().RebuildDeclarationNameExpr(SS, R, Old->requiresADL());
13720 return getDerived().RebuildTemplateIdExpr(SS, TemplateKWLoc, R,
13735 QualType To = getDerived().TransformType(TLB, FromTL);
13763 if (getDerived().TryExpandParameterPacks(ExpansionTL.getEllipsisLoc(),
13779 QualType To = getDerived().TransformType(TLB, PatternTL);
13783 To = getDerived().RebuildPackExpansionType(To,
13803 QualType To = getDerived().TransformType(TLB, PatternTL);
13808 To = getDerived().RebuildPackExpansionType(To,
13828 ForgetPartiallySubstitutedPackRAII Forget(getDerived());
13833 QualType To = getDerived().TransformType(TLB, PatternTL);
13837 To = getDerived().RebuildPackExpansionType(To,
13850 if (!getDerived().AlwaysRebuild() && !ArgChanged)
13853 return getDerived().RebuildTypeTrait(E->getTrait(), E->getBeginLoc(), Args,
13863 if (getDerived().TransformTemplateArguments(Old->getTemplateArgs(),
13867 return getDerived().RebuildConceptSpecializationExpr(
13892 ExprResult TypeParamResult = getDerived().TransformRequiresTypeParams(
13908 if (getDerived().TransformRequiresExprRequirements(E->getRequirements(),
13922 return getDerived().RebuildRequiresExpr(
13934 TransReq = getDerived().TransformTypeRequirement(TypeReq);
13936 TransReq = getDerived().TransformExprRequirement(ExprReq);
13938 TransReq = getDerived().TransformNestedRequirement(
13952 if (getDerived().AlwaysRebuild())
13953 return getDerived().RebuildTypeRequirement(
13957 TypeSourceInfo *TransType = getDerived().TransformType(Req->getType());
13960 return getDerived().RebuildTypeRequirement(TransType);
13970 ExprResult TransExprRes = getDerived().TransformExpr(Req->getExpr());
13988 getDerived().TransformTemplateParameterList(OrigTPL);
13995 return getDerived().RebuildExprRequirement(E, Req->isSimple(),
13998 return getDerived().RebuildExprRequirement(
14008 if (getDerived().AlwaysRebuild())
14009 return getDerived().RebuildNestedRequirement(
14014 getDerived().TransformExpr(Req->getConstraintExpr());
14017 return getDerived().RebuildNestedRequirement(TransConstraint.get());
14023 TypeSourceInfo *T = getDerived().TransformType(E->getQueriedTypeSourceInfo());
14027 if (!getDerived().AlwaysRebuild() &&
14035 SubExpr = getDerived().TransformExpr(E->getDimensionExpression());
14039 if (!getDerived().AlwaysRebuild() && SubExpr.get() == E->getDimensionExpression())
14043 return getDerived().RebuildArrayTypeTrait(E->getTrait(), E->getBeginLoc(), T,
14054 SubExpr = getDerived().TransformExpr(E->getQueriedExpression());
14058 if (!getDerived().AlwaysRebuild() && SubExpr.get() == E->getQueriedExpression())
14062 return getDerived().RebuildExpressionTrait(E->getTrait(), E->getBeginLoc(),
14070 ExprResult NewDRE = getDerived().TransformDependentScopeDeclRefExpr(
14078 if (!getDerived().AlwaysRebuild() && NewDRE.get() == DRE)
14080 return getDerived().RebuildParenExpr(NewDRE.get(), PE->getLParen(),
14097 getDerived().TransformNestedNameSpecifierLoc(E->getQualifierLoc());
14107 getDerived().TransformDeclarationNameInfo(E->getNameInfo());
14112 if (!getDerived().AlwaysRebuild() && QualifierLoc == E->getQualifierLoc() &&
14118 return getDerived().RebuildDependentScopeDeclRefExpr(
14124 if (getDerived().TransformTemplateArguments(
14128 return getDerived().RebuildDependentScopeDeclRefExpr(
14139 if (getDerived().AllowSkippingCXXConstructExpr() &&
14141 (E->getNumArgs() > 1 && getDerived().DropCallArgument(E->getArg(1)))) &&
14142 (!getDerived().DropCallArgument(E->getArg(0))) &&
14144 return getDerived().TransformInitializer(E->getArg(0),
14149 QualType T = getDerived().TransformType(E->getType());
14154 getDerived().TransformDecl(E->getBeginLoc(), E->getConstructor()));
14164 if (getDerived().TransformExprs(E->getArgs(), E->getNumArgs(), true, Args,
14169 if (!getDerived().AlwaysRebuild() &&
14179 return getDerived().RebuildCXXConstructExpr(
14189 QualType T = getDerived().TransformType(E->getType());
14194 getDerived().TransformDecl(E->getBeginLoc(), E->getConstructor()));
14198 if (!getDerived().AlwaysRebuild() &&
14207 return getDerived().RebuildCXXInheritedCtorInitExpr(
14222 return getDerived().TransformExpr(E->getSubExpr());
14233 return getDerived().TransformExpr(E->getSubExpr());
14241 getDerived().TransformTypeWithDeducedTST(E->getTypeSourceInfo());
14246 getDerived().TransformDecl(E->getBeginLoc(), E->getConstructor()));
14262 if (!getDerived().AlwaysRebuild() &&
14274 return getDerived().RebuildCXXTemporaryObjectExpr(
14304 ExprResult NewExprInitResult = getDerived().TransformInitializer(
14339 if (getDerived().TryExpandParameterPacks(
14351 ForgetPartiallySubstitutedPackRAII Forget(getDerived());
14401 getDerived().transformedLocalDecl(OldClass, {Class});
14478 getDerived().transformedLocalDecl(OldVD, NewVDs);
14496 if (getDerived().TryExpandParameterPacks(C->getEllipsisLoc(),
14513 = cast_or_null<VarDecl>(getDerived().TransformDecl(C->getLocation(),
14534 getDerived().TransformDecl(C->getLocation(), C->getCapturedVar()));
14548 auto TPL = getDerived().TransformTemplateParameterList(
14612 getDerived().transformAttrs(E->getCallOperator(), NewCallOperator);
14613 getDerived().transformedLocalDecl(E->getCallOperator(), {NewCallOperator});
14620 if (getDerived().ReplacingOriginal()) {
14644 Invalid ? StmtError() : getDerived().TransformLambdaBody(E, E->getBody());
14699 DependencyKind = getDerived().ComputeLambdaDependency(&LSICopy);
14745 getDerived().TransformDecl(C->getLocation(), C->getCapturedVar()));
14761 getDerived().TransformTypeWithDeducedTST(E->getTypeSourceInfo());
14772 if (getDerived().TransformExprs(E->arg_begin(), E->getNumArgs(), true, Args,
14777 if (!getDerived().AlwaysRebuild() &&
14783 return getDerived().RebuildCXXUnresolvedConstructExpr(
14798 Base = getDerived().TransformExpr(OldBase);
14817 BaseType = getDerived().TransformType(E->getBaseType());
14824 = getDerived().TransformFirstQualifierInScope(
14831 = getDerived().TransformNestedNameSpecifierLoc(E->getQualifierLoc(),
14845 = getDerived().TransformDeclarationNameInfo(E->getMemberNameInfo());
14852 if (!getDerived().AlwaysRebuild() &&
14860 return getDerived().RebuildCXXDependentScopeMemberExpr(Base.get(),
14872 if (getDerived().TransformTemplateArguments(E->getTemplateArgs(),
14877 return getDerived().RebuildCXXDependentScopeMemberExpr(Base.get(),
14895 Base = getDerived().TransformExpr(Old->getBase());
14904 BaseType = getDerived().TransformType(Old->getBaseType());
14910 getDerived().TransformNestedNameSpecifierLoc(Old->getQualifierLoc());
14926 getDerived().TransformDecl(Old->getMemberLoc(), Old->getNamingClass()));
14937 if (getDerived().TransformTemplateArguments(
14948 return getDerived().RebuildUnresolvedMemberExpr(
14959 ExprResult SubExpr = getDerived().TransformExpr(E->getOperand());
14963 if (!getDerived().AlwaysRebuild() && SubExpr.get() == E->getOperand())
14966 return getDerived().RebuildCXXNoexceptExpr(E->getSourceRange(),SubExpr.get());
14972 ExprResult Pattern = getDerived().TransformExpr(E->getPattern());
14976 if (!getDerived().AlwaysRebuild() && Pattern.get() == E->getPattern())
14979 return getDerived().RebuildPackExpansion(Pattern.get(), E->getEllipsisLoc(),
15005 if (getDerived().TryExpandParameterPacks(E->getOperatorLoc(), E->getPackLoc(),
15039 getDerived().TransformDecl(E->getPackLoc(), E->getPack()));
15042 return getDerived().RebuildSizeOfPackExpr(
15068 if (getDerived().TransformTemplateArgument(Pattern, OutPattern,
15088 return getDerived().RebuildSizeOfPackExpr(
15115 return getDerived().RebuildSizeOfPackExpr(
15119 return getDerived().RebuildSizeOfPackExpr(E->getOperatorLoc(), E->getPack(),
15131 ExprResult IndexExpr = getDerived().TransformExpr(E->getIndexExpr());
15149 if (getDerived().TryExpandParameterPacks(
15155 ExprResult Pack = getDerived().TransformExpr(Pattern);
15158 return getDerived().RebuildPackIndexingExpr(
15164 ExprResult Out = getDerived().TransformExpr(Pattern);
15168 Out = getDerived().RebuildPackExpansion(Out.get(), E->getEllipsisLoc(),
15178 ForgetPartiallySubstitutedPackRAII Forget(getDerived());
15180 ExprResult Out = getDerived().TransformExpr(Pattern);
15184 Out = getDerived().RebuildPackExpansion(Out.get(), E->getEllipsisLoc(),
15191 if (getDerived().TransformExprs(E->getExpressions().data(),
15197 return getDerived().RebuildPackIndexingExpr(
15230 return getDerived().TransformExpr(E->getSubExpr());
15238 ExprResult CalleeResult = getDerived().TransformExpr(OldCallee);
15256 if (getDerived().TryExpandParameterPacks(E->getEllipsisLoc(),
15269 E->getLHS() ? getDerived().TransformExpr(E->getLHS()) : ExprResult();
15274 E->getRHS() ? getDerived().TransformExpr(E->getRHS()) : ExprResult();
15278 if (!getDerived().AlwaysRebuild() &&
15282 return getDerived().RebuildCXXFoldExpr(
15301 ExprResult Result = getDerived().TransformExpr(E->getInit());
15309 ForgetPartiallySubstitutedPackRAII Forget(getDerived());
15311 ExprResult Out = getDerived().TransformExpr(Pattern);
15315 Result = getDerived().RebuildCXXFoldExpr(
15325 ExprResult Out = getDerived().TransformExpr(Pattern);
15331 Result = getDerived().RebuildCXXFoldExpr(
15343 Result = getDerived().RebuildCXXOperatorCallExpr(
15348 Result = getDerived().RebuildBinaryOperator(E->getEllipsisLoc(),
15361 ForgetPartiallySubstitutedPackRAII Forget(getDerived());
15363 ExprResult Out = getDerived().TransformExpr(Pattern);
15367 Result = getDerived().RebuildCXXFoldExpr(
15377 return getDerived().RebuildEmptyCXXFoldExpr(E->getEllipsisLoc(),
15392 return getDerived().RebuildParenListExpr(E->getBeginLoc(), TransformedInits,
15400 return getDerived().TransformExpr(E->getSubExpr());
15418 ExprResult SubExpr = getDerived().TransformExpr(E->getSubExpr());
15422 if (!getDerived().AlwaysRebuild() &&
15426 return getDerived().RebuildObjCBoxedExpr(E->getSourceRange(), SubExpr.get());
15435 if (getDerived().TransformExprs(E->getElements(), E->getNumElements(),
15439 if (!getDerived().AlwaysRebuild() && !ArgChanged)
15442 return getDerived().RebuildObjCArrayLiteral(E->getSourceRange(),
15472 if (getDerived().TryExpandParameterPacks(OrigElement.EllipsisLoc,
15482 ExprResult Key = getDerived().TransformExpr(OrigElement.Key);
15489 ExprResult Value = getDerived().TransformExpr(OrigElement.Value);
15511 ExprResult Key = getDerived().TransformExpr(OrigElement.Key);
15515 ExprResult Value = getDerived().TransformExpr(OrigElement.Value);
15540 ExprResult Key = getDerived().TransformExpr(OrigElement.Key);
15549 = getDerived().TransformExpr(OrigElement.Value);
15561 if (!getDerived().AlwaysRebuild() && !ArgChanged)
15564 return getDerived().RebuildObjCDictionaryLiteral(E->getSourceRange(),
15572 = getDerived().TransformType(E->getEncodedTypeSourceInfo());
15576 if (!getDerived().AlwaysRebuild() &&
15580 return getDerived().RebuildObjCEncodeExpr(E->getAtLoc(),
15592 return getDerived().TransformExpr(E->getSubExpr());
15599 = getDerived().TransformType(E->getTypeInfoAsWritten());
15603 ExprResult Result = getDerived().TransformExpr(E->getSubExpr());
15607 if (!getDerived().AlwaysRebuild() &&
15630 if (getDerived().TransformExprs(E->getArgs(), E->getNumArgs(), false, Args,
15637 = getDerived().TransformType(E->getClassReceiverTypeInfo());
15642 if (!getDerived().AlwaysRebuild() &&
15649 return getDerived().RebuildObjCMessageExpr(ReceiverTypeInfo,
15665 return getDerived().RebuildObjCMessageExpr(E->getSuperLoc(),
15679 = getDerived().TransformExpr(E->getInstanceReceiver());
15684 if (!getDerived().AlwaysRebuild() &&
15691 return getDerived().RebuildObjCMessageExpr(Receiver.get(),
15716 ExprResult Base = getDerived().TransformExpr(E->getBase());
15723 if (!getDerived().AlwaysRebuild() &&
15727 return getDerived().RebuildObjCIvarRefExpr(Base.get(), E->getDecl(),
15741 ExprResult Base = getDerived().TransformExpr(E->getBase());
15748 if (!getDerived().AlwaysRebuild() &&
15753 return getDerived().RebuildObjCPropertyRefExpr(Base.get(),
15757 return getDerived().RebuildObjCPropertyRefExpr(Base.get(),
15768 ExprResult Base = getDerived().TransformExpr(E->getBaseExpr());
15773 ExprResult Key = getDerived().TransformExpr(E->getKeyExpr());
15778 if (!getDerived().AlwaysRebuild() &&
15782 return getDerived().RebuildObjCSubscriptRefExpr(E->getRBracket(),
15792 ExprResult Base = getDerived().TransformExpr(E->getBase());
15797 if (!getDerived().AlwaysRebuild() &&
15801 return getDerived().RebuildObjCIsaExpr(Base.get(), E->getIsaMemberLoc(),
15812 if (getDerived().TransformExprs(E->getSubExprs(), E->getNumSubExprs(), false,
15816 if (!getDerived().AlwaysRebuild() &&
15820 return getDerived().RebuildShuffleVectorExpr(E->getBuiltinLoc(),
15828 ExprResult SrcExpr = getDerived().TransformExpr(E->getSrcExpr());
15832 TypeSourceInfo *Type = getDerived().TransformType(E->getTypeSourceInfo());
15836 if (!getDerived().AlwaysRebuild() &&
15841 return getDerived().RebuildConvertVectorExpr(E->getBuiltinLoc(),
15865 if (getDerived().TransformFunctionTypeParams(
15874 getDerived().TransformType(exprFunctionType->getReturnType());
15880 getDerived().RebuildFunctionProtoType(exprResultType, paramTypes, epi);
15893 StmtResult body = getDerived().TransformStmt(E->getBody());
15911 cast<VarDecl>(getDerived().TransformDecl(E->getCaretLocation(),
15931 ExprResult SrcExpr = getDerived().TransformExpr(E->getSrcExpr());
15935 QualType Type = getDerived().TransformType(E->getType());
15947 if (getDerived().TransformExprs(E->getSubExprs(), E->getNumSubExprs(), false,
15951 if (!getDerived().AlwaysRebuild() &&
15955 return getDerived().RebuildAtomicExpr(E->getBuiltinLoc(), SubExprs,
15967 getDerived().getBaseEntity());
15974 getDerived().getBaseEntity());
15983 Sigil, getDerived().getBaseEntity());
15992 getDerived().getBaseEntity());
16039 getDerived().getBaseEntity());
16060 getDerived().getBaseEntity());
16067 return getDerived().RebuildArrayType(ElementType, SizeMod, &Size, SizeExpr,
16075 return getDerived().RebuildArrayType(ElementType, SizeMod, nullptr, nullptr,
16083 return getDerived().RebuildArrayType(ElementType, SizeMod, nullptr,
16092 return getDerived().RebuildArrayType(ElementType, SizeMod, nullptr,
16160 getDerived().getBaseLocation(),
16161 getDerived().getBaseEntity(),
16492 getDerived().TransformType(CD->getParam(I)->getType())));
16502 Body = getDerived().TransformStmt(S->getCapturedStmt());