Home | History | Annotate | Download | only in Sema

Lines Matching refs:getDerived

132   Derived &getDerived() { return static_cast<Derived&>(*this); }
135 const Derived &getDerived() const {
201 OldLocation = Self.getDerived().getBaseLocation();
202 OldEntity = Self.getDerived().getBaseEntity();
205 Self.getDerived().setBase(Location, Entity);
209 Self.getDerived().setBase(OldLocation, OldEntity);
490 return getDerived().TransformDecl(Loc, D);
503 return cast_or_null<NamedDecl>(getDerived().TransformDecl(Loc, D));
631 getDerived().getBaseLocation());
1050 TemplateName InstName = getDerived().RebuildTemplateName(
1067 getDerived().RebuildTemplateSpecializationType(InstName, NameLoc, Args);
2854 return getDerived().RebuildCXXStaticCastExpr(OpLoc, LAngleLoc, TInfo,
2859 return getDerived().RebuildCXXDynamicCastExpr(OpLoc, LAngleLoc, TInfo,
2864 return getDerived().RebuildCXXReinterpretCastExpr(OpLoc, LAngleLoc, TInfo,
2870 return getDerived().RebuildCXXConstCastExpr(OpLoc, LAngleLoc, TInfo,
2875 return getDerived().RebuildCXXAddrspaceCastExpr(
3750 case Stmt::Node##Class: return getDerived().Transform##Node(cast<Node>(S));
3753 return getDerived().Transform##Node(cast<Node>(S), SDK);
3764 ExprResult E = getDerived().TransformExpr(cast<Expr>(S));
3786 return getDerived().Transform##Class(cast<Class>(S));
3804 case Stmt::Node##Class: return getDerived().Transform##Node(cast<Node>(E));
3843 return getDerived().TransformExpr(Init);
3848 return getDerived().RebuildParenListExpr(Parens.getBegin(), None,
3854 return getDerived().RebuildParenListExpr(SourceLocation(), None,
3860 return getDerived().TransformExpr(Init);
3874 if (getDerived().TransformExprs(Construct->getArgs(), Construct->getNumArgs(),
3880 return getDerived().RebuildInitList(Construct->getBeginLoc(), NewArgs,
3892 return getDerived().RebuildParenListExpr(Parens.getBegin(), NewArgs,
3904 if (IsCall && getDerived().DropCallArgument(Inputs[I])) {
3924 if (getDerived().TryExpandParameterPacks(Expansion->getEllipsisLoc(),
3936 ExprResult OutPattern = getDerived().TransformExpr(Pattern);
3940 ExprResult Out = getDerived().RebuildPackExpansion(OutPattern.get(),
3960 ExprResult Out = getDerived().TransformExpr(Pattern);
3965 Out = getDerived().RebuildPackExpansion(
3977 ForgetPartiallySubstitutedPackRAII Forget(getDerived());
3979 ExprResult Out = getDerived().TransformExpr(Pattern);
3983 Out = getDerived().RebuildPackExpansion(
3995 IsCall ? getDerived().TransformInitializer(Inputs[I], /*DirectInit*/false)
3996 : getDerived().TransformExpr(Inputs[I]);
4014 getDerived().TransformDefinition(Var->getLocation(), Var));
4023 ExprResult CondExpr = getDerived().TransformExpr(Expr);
4061 cast_or_null<NamespaceDecl>(getDerived().TransformDecl(
4069 cast_or_null<NamespaceAliasDecl>(getDerived().TransformDecl(
4084 cast_or_null<CXXRecordDecl>(getDerived().TransformDecl(
4128 !getDerived().AlwaysRebuild())
4162 getDerived().TransformDecl(NameInfo.getLoc(), OldTemplate));
4178 NewTInfo = getDerived().TransformType(OldTInfo);
4186 QualType NewT = getDerived().TransformType(Name.getCXXNameType());
4218 = cast_or_null<TemplateDecl>(getDerived().TransformDecl(NameLoc,
4223 if (!getDerived().AlwaysRebuild() &&
4228 return getDerived().RebuildTemplateName(SS, QTN->hasTemplateKeyword(),
4239 if (!getDerived().AlwaysRebuild() &&
4248 return getDerived().RebuildTemplateName(SS,
4257 return getDerived().RebuildTemplateName(SS, TemplateKWLoc,
4264 = cast_or_null<TemplateDecl>(getDerived().TransformDecl(NameLoc,
4269 if (!getDerived().AlwaysRebuild() &&
4280 getDerived().TransformDecl(NameLoc, SubstPack->getParameterPack()));
4284 if (!getDerived().AlwaysRebuild() &&
4288 return getDerived().RebuildTemplateName(TransParam,
4301 Arg, QualType(), getDerived().getBaseLocation());
4321 QualType NewT = getDerived().TransformType(T);
4328 ValueDecl *NewD = D ? cast_or_null<ValueDecl>(getDerived().TransformDecl(
4329 getDerived().getBaseLocation(), D))
4355 DI = getDerived().TransformType(DI);
4365 QualifierLoc = getDerived().TransformNestedNameSpecifierLoc(QualifierLoc);
4373 = getDerived().TransformTemplateName(SS, Arg.getAsTemplate(),
4398 ExprResult E = getDerived().TransformExpr(InputExpr);
4515 if (getDerived().TryExpandParameterPacks(Ellipsis,
4529 if (getDerived().TransformTemplateArgument(Pattern, OutPattern, Uneval))
4532 Out = getDerived().RebuildPackExpansion(OutPattern, Ellipsis,
4546 if (getDerived().TransformTemplateArgument(Pattern, Out, Uneval))
4550 Out = getDerived().RebuildPackExpansion(Out, Ellipsis,
4562 ForgetPartiallySubstitutedPackRAII Forget(getDerived());
4564 if (getDerived().TransformTemplateArgument(Pattern, Out, Uneval))
4567 Out = getDerived().RebuildPackExpansion(Out, Ellipsis,
4579 if (getDerived().TransformTemplateArgument(In, Out, Uneval))
4595 if (getDerived().AlreadyTransformed(T))
4601 getDerived().getBaseLocation());
4603 TypeSourceInfo *NewDI = getDerived().TransformType(DI);
4615 getDerived().getBaseEntity());
4616 if (getDerived().AlreadyTransformed(DI->getType()))
4624 QualType Result = getDerived().TransformType(TLB, TL);
4638 return getDerived().Transform##CLASS##Type(TLB, \
4651 if (getDerived().AlreadyTransformed(T))
4654 getDerived().getBaseLocation());
4655 TypeSourceInfo *NewDI = getDerived().TransformTypeWithDeducedTST(DI);
4667 getDerived().getBaseEntity());
4668 if (getDerived().AlreadyTransformed(DI->getType()))
4682 QualType Result = getDerived().TransformDependentNameType(
4688 Result = getDerived().RebuildQualifiedType(Result, QTL);
4701 QualType Result = getDerived().TransformType(TLB, T.getUnqualifiedLoc());
4705 Result = getDerived().RebuildQualifiedType(Result, T);
4804 if (getDerived().AlreadyTransformed(TL.getType()))
4820 if (getDerived().AlreadyTransformed(TSInfo->getType()))
4832 assert(!getDerived().AlreadyTransformed(T));
4841 TemplateName Template = getDerived().TransformTemplateName(
4847 Result = getDerived().TransformTemplateSpecializationType(TLB, SpecTL,
4854 = getDerived().RebuildTemplateName(SS,
4863 Result = getDerived().TransformDependentTemplateSpecializationType(TLB,
4869 Result = getDerived().TransformType(TLB, TL);
4906 return getDerived().TransformType(TLB, TL.getOriginalLoc());
4912 QualType OriginalType = getDerived().TransformType(TLB, TL.getOriginalLoc());
4917 if (getDerived().AlwaysRebuild() ||
4929 = getDerived().TransformType(TLB, TL.getPointeeLoc());
4946 if (getDerived().AlwaysRebuild() ||
4948 Result = getDerived().RebuildPointerType(PointeeType, TL.getSigilLoc());
4967 = getDerived().TransformType(TLB, TL.getPointeeLoc());
4972 if (getDerived().AlwaysRebuild() ||
4974 Result = getDerived().RebuildBlockPointerType(PointeeType,
4996 QualType PointeeType = getDerived().TransformType(TLB, TL.getPointeeLoc());
5001 if (getDerived().AlwaysRebuild() ||
5003 Result = getDerived().RebuildReferenceType(PointeeType,
5044 QualType PointeeType = getDerived().TransformType(TLB, TL.getPointeeLoc());
5051 NewClsTInfo = getDerived().TransformType(OldClsTInfo);
5062 NewClsType = getDerived().TransformType(OldClsType);
5068 if (getDerived().AlwaysRebuild() ||
5071 Result = getDerived().RebuildMemberPointerType(PointeeType, NewClsType,
5097 QualType ElementType = getDerived().TransformType(TLB, TL.getElementLoc());
5109 NewSize = getDerived().TransformExpr(OldSize).template getAs<Expr>();
5114 if (getDerived().AlwaysRebuild() ||
5117 Result = getDerived().RebuildConstantArrayType(ElementType,
5143 QualType ElementType = getDerived().TransformType(TLB, TL.getElementLoc());
5148 if (getDerived().AlwaysRebuild() ||
5150 Result = getDerived().RebuildIncompleteArrayType(ElementType,
5171 QualType ElementType = getDerived().TransformType(TLB, TL.getElementLoc());
5179 SizeResult = getDerived().TransformExpr(T->getSizeExpr());
5191 if (getDerived().AlwaysRebuild() ||
5194 Result = getDerived().RebuildVariableArrayType(ElementType,
5218 QualType ElementType = getDerived().TransformType(TLB, TL.getElementLoc());
5231 = getDerived().TransformExpr(origSize);
5239 if (getDerived().AlwaysRebuild() ||
5242 Result = getDerived().RebuildDependentSizedArrayType(ElementType,
5265 QualType ElementType = getDerived().TransformType(TLB, TL.getElementLoc());
5272 ExprResult Size = getDerived().TransformExpr(T->getSizeExpr());
5278 if (getDerived().AlwaysRebuild() || ElementType != T->getElementType() ||
5280 Result = getDerived().RebuildDependentVectorType(
5306 QualType ElementType = getDerived().TransformType(TLB, TL.getElementLoc());
5314 ExprResult Size = getDerived().TransformExpr(T->getSizeExpr());
5320 if (getDerived().AlwaysRebuild() ||
5323 Result = getDerived().RebuildDependentSizedExtVectorType(ElementType,
5348 QualType ElementType = getDerived().TransformType(T->getElementType());
5353 if (getDerived().AlwaysRebuild() || ElementType != T->getElementType()) {
5354 Result = getDerived().RebuildConstantMatrixType(
5374 QualType ElementType = getDerived().TransformType(T->getElementType());
5390 ExprResult rowResult = getDerived().TransformExpr(origRows);
5395 ExprResult columnResult = getDerived().TransformExpr(origColumns);
5404 if (getDerived().AlwaysRebuild() || ElementType != T->getElementType() ||
5406 Result = getDerived().RebuildDependentSizedMatrixType(
5428 QualType pointeeType = getDerived().TransformType(T->getPointeeType());
5437 ExprResult AddrSpace = getDerived().TransformExpr(T->getAddrSpaceExpr());
5443 if (getDerived().AlwaysRebuild() || pointeeType != T->getPointeeType() ||
5445 Result = getDerived().RebuildDependentAddressSpaceType(
5462 Result, getDerived().getBaseLocation());
5473 QualType ElementType = getDerived().TransformType(TLB, TL.getElementLoc());
5478 if (getDerived().AlwaysRebuild() ||
5480 Result = getDerived().RebuildVectorType(ElementType, T->getNumElements(),
5496 QualType ElementType = getDerived().TransformType(TLB, TL.getElementLoc());
5501 if (getDerived().AlwaysRebuild() ||
5503 Result = getDerived().RebuildExtVectorType(ElementType,
5533 QualType Result = getDerived().TransformType(TLB,
5550 NewDI = getDerived().TransformType(OldDI);
5606 if (getDerived().TryExpandParameterPacks(ExpansionTL.getEllipsisLoc(),
5626 getDerived
5630 = getDerived().TransformFunctionTypeParam(OldParm,
5647 ForgetPartiallySubstitutedPackRAII Forget(getDerived());
5649 = getDerived().TransformFunctionTypeParam(OldParm,
5676 NewParm = getDerived().TransformFunctionTypeParam(OldParm,
5684 NewParm = getDerived().TransformFunctionTypeParam(
5715 if (getDerived().TryExpandParameterPacks(Loc, SourceRange(),
5728 QualType NewType = getDerived().TransformType(Pattern);
5754 ForgetPartiallySubstitutedPackRAII Forget(getDerived());
5755 QualType NewType = getDerived().TransformType(Pattern);
5771 NewType = getDerived().TransformType(OldType);
5773 NewType = getDerived().TransformType(OldType);
5807 return getDerived().TransformFunctionProtoType(
5835 if (getDerived().TransformFunctionTypeParams(
5851 ResultType = getDerived().TransformType(TLB, TL.getReturnLoc());
5857 ResultType = getDerived().TransformType(TLB, TL.getReturnLoc());
5861 if (getDerived().TransformFunctionTypeParams(
5890 if (getDerived().AlwaysRebuild() || ResultType != T->getReturnType() ||
5892 Result = getDerived().RebuildFunctionProtoType(ResultType, ParamTypes, EPI);
5919 ExprResult NoexceptExpr = getDerived().TransformExpr(ESI.NoexceptExpr);
5958 if (getDerived().TryExpandParameterPacks(
5968 QualType U = getDerived().TransformType(PackExpansion->getPattern());
5982 QualType U = getDerived().TransformType(PackExpansion->getPattern());
5989 QualType U = getDerived().TransformType(T);
6010 QualType ResultType = getDerived().TransformType(TLB, TL.getReturnLoc());
6015 if (getDerived().AlwaysRebuild() || ResultType != T->getReturnType())
6016 Result = getDerived().RebuildFunctionNoProtoType(ResultType);
6031 Decl *D = getDerived().TransformDecl(TL.getNameLoc(), T->getDecl());
6036 if (getDerived().AlwaysRebuild() || D != T->getDecl()) {
6037 Result = getDerived().RebuildUnresolvedUsingType(TL.getNameLoc(), D);
6055 = cast_or_null<TypedefNameDecl>(getDerived().TransformDecl(TL.getNameLoc(),
6061 if (getDerived().AlwaysRebuild() ||
6063 Result = getDerived().RebuildTypedefType(Typedef);
6082 ExprResult E = getDerived().TransformExpr(TL.getUnderlyingExpr());
6091 if (getDerived().AlwaysRebuild() ||
6093 Result = getDerived().RebuildTypeOfExprType(E.get(), TL.getTypeofLoc());
6111 TypeSourceInfo* New_Under_TI = getDerived().TransformType(Old_Under_TI);
6116 if (getDerived().AlwaysRebuild() || New_Under_TI != Old_Under_TI) {
6117 Result = getDerived().RebuildTypeOfType(New_Under_TI->getType());
6141 ExprResult E = getDerived().TransformExpr(T->getUnderlyingExpr());
6150 if (getDerived().AlwaysRebuild() ||
6152 Result = getDerived().RebuildDecltypeType(E.get(), TL.getNameLoc());
6172 getDerived().TransformType(TL.getUnderlyingTInfo())->getType();
6173 Result = getDerived().RebuildUnaryTransformType(NewBase,
6193 TemplateName TemplateName = getDerived().TransformTemplateName(
6201 NewDeduced = getDerived().TransformType(OldDeduced);
6206 QualType Result = getDerived().RebuildDeducedTemplateSpecializationType(
6223 = cast_or_null<RecordDecl>(getDerived().TransformDecl(TL.getNameLoc(),
6229 if (getDerived().AlwaysRebuild() ||
6231 Result = getDerived().RebuildRecordType(Record);
6247 = cast_or_null<EnumDecl>(getDerived().TransformDecl(TL.getNameLoc(),
6253 if (getDerived().AlwaysRebuild() ||
6255 Result = getDerived().RebuildEnumType(Enum);
6270 Decl *D = getDerived().TransformDecl(TL.getNameLoc(),
6296 QualType Replacement = getDerived().TransformType(T->getReplacementType());
6331 = getDerived().TransformTemplateName(SS, T->getTemplateName(),
6336 return getDerived().TransformTemplateSpecializationType(TLB, TL, Template);
6342 QualType ValueType = getDerived().TransformType(TLB, TL.getValueLoc());
6347 if (getDerived().AlwaysRebuild() ||
6349 Result = getDerived().RebuildAtomicType(ValueType, TL.getKWLoc());
6365 QualType ValueType = getDerived().TransformType(TLB, TL.getValueLoc());
6370 if (getDerived().AlwaysRebuild() || ValueType != TL.getValueLoc().getType()) {
6373 Result = getDerived().RebuildPipeType(ValueType, TL.getKWLoc(), isReadPipe);
6390 if (getDerived().AlwaysRebuild()) {
6391 Result = getDerived().RebuildExtIntType(EIT->isUnsigned(),
6409 ExprResult BitsExpr = getDerived().TransformExpr(EIT->getNumBitsExpr());
6417 if (getDerived().AlwaysRebuild() || BitsExpr.get() != EIT->getNumBitsExpr()) {
6418 Result = getDerived().RebuildDependentExtIntType(
6506 NewDeduced = getDerived().TransformType(OldDeduced);
6515 NewCD = cast_or_null<ConceptDecl>(getDerived().TransformDecl(
6521 if (getDerived().TransformTemplateArguments(ArgIterator(TL, 0),
6529 = getDerived().TransformNestedNameSpecifierLoc(
6537 if (getDerived().AlwaysRebuild() || NewDeduced != OldDeduced ||
6544 getDerived().RebuildAutoType(NewDeduced, T->getKeyword(), NewCD,
6574 if (getDerived().TransformTemplateArguments(ArgIterator(TL, 0),
6582 getDerived().RebuildTemplateSpecializationType(Template,
6629 if (getDerived().TransformTemplateArguments(ArgIterator(TL, 0),
6658 = getDerived().RebuildTemplateSpecializationType(Template,
6687 = getDerived().TransformNestedNameSpecifierLoc(TL.getQualifierLoc());
6692 QualType NamedT = getDerived().TransformType(TLB, TL.getNamedTypeLoc());
6716 if (getDerived().AlwaysRebuild() ||
6719 Result = getDerived().RebuildElaboratedType(TL.getElaboratedKeywordLoc(),
6737 QualType modifiedType = getDerived().TransformType(TLB, TL.getModifiedLoc());
6743 const Attr *newAttr = oldAttr ? getDerived().TransformAttr(oldAttr) : nullptr;
6750 if (getDerived().AlwaysRebuild() ||
6755 = getDerived().TransformType(oldType->getEquivalentType());
6784 QualType Inner = getDerived().TransformType(TLB, TL.getInnerLoc());
6789 if (getDerived().AlwaysRebuild() ||
6791 Result = getDerived().RebuildParenType(Inner);
6806 QualType Inner = getDerived().TransformType(TLB, TL.getInnerLoc());
6811 if (getDerived().AlwaysRebuild() || Inner != TL.getInnerLoc().getType()) {
6813 getDerived().RebuildMacroQualifiedType(Inner, TL.getMacroIdentifier());
6835 = getDerived().TransformNestedNameSpecifierLoc(TL.getQualifierLoc());
6840 = getDerived().RebuildDependentNameType(T->getKeyword(),
6872 = getDerived().TransformNestedNameSpecifierLoc(TL.getQualifierLoc());
6877 return getDerived()
6894 if (getDerived().TransformTemplateArguments(ArgIterator(TL, 0),
6899 QualType Result = getDerived().RebuildDependentTemplateSpecializationType(
6951 = getDerived().TransformType(TLB, TL.getPatternLoc());
6956 if (getDerived().AlwaysRebuild() ||
6958 Result = getDerived().RebuildPackExpansionType(Pattern,
6986 getDerived().TransformDecl(T->getDecl()->getLocation(), T->getDecl()));
6991 if (getDerived().AlwaysRebuild() ||
6993 Result = getDerived().RebuildObjCTypeParamType(OTP,
7018 QualType BaseType = getDerived().TransformType(TLB, TL.getBaseLoc());
7047 if (getDerived().TryExpandParameterPacks(
7060 QualType NewPatternType = getDerived().TransformType(TypeArgBuilder,
7082 QualType NewTypeArg = getDerived().TransformType(TypeArgBuilder,
7096 QualType NewTypeArg = getDerived().TransformType(TypeArgBuilder, TypeArgLoc);
7112 if (getDerived().AlwaysRebuild() || AnyChanged) {
7114 Result = getDerived().RebuildObjCObjectType(
7141 QualType PointeeType = getDerived().TransformType(TLB, TL.getPointeeLoc());
7146 if (getDerived().AlwaysRebuild() ||
7148 Result = getDerived().RebuildObjCObjectPointerType(PointeeType,
7171 return getDerived().TransformCompoundStmt(S, false);
7185 StmtResult Result = getDerived().TransformStmt(
7206 if (!getDerived().AlwaysRebuild() &&
7210 return getDerived().RebuildCompoundStmt(S->getLBracLoc(),
7225 LHS = getDerived().TransformExpr(S->getLHS());
7231 RHS = getDerived().TransformExpr(S->getRHS());
7240 StmtResult Case = getDerived().RebuildCaseStmt(S->getCaseLoc(),
7250 getDerived().TransformStmt(S->getSubStmt());
7255 return getDerived().RebuildCaseStmtBody(Case.get(), SubStmt.get());
7262 getDerived().TransformStmt(S->getSubStmt());
7267 return getDerived().RebuildDefaultStmt(S->getDefaultLoc(), S->getColonLoc(),
7274 StmtResult SubStmt = getDerived().TransformStmt(S->getSubStmt(), SDK);
7278 Decl *LD = getDerived().TransformDecl(S->getDecl()->getLocation(),
7290 return getDerived().RebuildLabelStmt(S->getIdentLoc(),
7305 return getDerived().Transform##X##Attr(cast<X##Attr>(R));
7321 const Attr *R = getDerived().TransformAttr(I);
7327 StmtResult SubStmt = getDerived().TransformStmt(S->getSubStmt(), SDK);
7339 return getDerived().RebuildAttributedStmt(S->getAttrLoc(), Attrs,
7347 StmtResult Init = getDerived().TransformStmt(S->getInit());
7352 Sema::ConditionResult Cond = getDerived().TransformCondition(
7367 Then = getDerived().TransformStmt(S->getThen());
7377 Else = getDerived().TransformStmt(S->getElse());
7382 if (!getDerived().AlwaysRebuild() &&
7389 return getDerived().RebuildIfStmt(
7398 StmtResult Init = getDerived().TransformStmt(S->getInit());
7403 Sema::ConditionResult Cond = getDerived().TransformCondition(
7411 getDerived().RebuildSwitchStmtStart(S->getSwitchLoc(), S->getLParenLoc(),
7417 StmtResult Body = getDerived().TransformStmt(S->getBody());
7422 return getDerived().RebuildSwitchStmtBody(S->getSwitchLoc(), Switch.get(),
7430 Sema::ConditionResult Cond = getDerived().TransformCondition(
7437 StmtResult Body = getDerived().TransformStmt(S->getBody());
7441 if (!getDerived().AlwaysRebuild() &&
7446 return getDerived().RebuildWhileStmt(S->getWhileLoc(), S->getLParenLoc(),
7454 StmtResult Body = getDerived().TransformStmt(S->getBody());
7459 ExprResult Cond = getDerived().TransformExpr(S->getCond());
7463 if (!getDerived().AlwaysRebuild() &&
7468 return getDerived().RebuildDoStmt(S->getDoLoc(), Body.get(), S->getWhileLoc(),
7480 StmtResult Init = getDerived().TransformStmt(S->getInit());
7490 Sema::ConditionResult Cond = getDerived().TransformCondition(
7497 ExprResult Inc = getDerived().TransformExpr(S->getInc());
7506 StmtResult Body = getDerived().TransformStmt(S->getBody());
7510 if (!getDerived().AlwaysRebuild() &&
7517 return getDerived().RebuildForStmt(S->getForLoc(), S->getLParenLoc(),
7525 Decl *LD = getDerived().TransformDecl(S->getLabel()->getLocation(),
7531 return getDerived().RebuildGotoStmt(S->getGotoLoc(), S->getLabelLoc(),
7538 ExprResult Target = getDerived().TransformExpr(S->getTarget());
7543 if (!getDerived().AlwaysRebuild() &&
7547 return getDerived().RebuildIndirectGotoStmt(S->getGotoLoc(), S->getStarLoc(),
7566 ExprResult Result = getDerived().TransformInitializer(S->getRetValue(),
7573 return getDerived().RebuildReturnStmt(S->getReturnLoc(), Result.get());
7582 Decl *Transformed = getDerived().TransformDefinition(D->getLocation(), D);
7592 if (!getDerived().AlwaysRebuild() && !DeclChanged)
7595 return getDerived().RebuildDeclStmt(Decls, S->getBeginLoc(), S->getEndLoc());
7620 ExprResult Result = getDerived().TransformExpr(OutputExpr);
7638 ExprResult Result = getDerived().TransformExpr(InputExpr);
7651 ExprResult Result = getDerived().TransformExpr(S->getLabelExpr(I));
7657 if (!getDerived().AlwaysRebuild() && !ExprsChanged)
7666 return getDerived().RebuildGCCAsmStmt(S->getAsmLoc(), S->isSimple(),
7686 ExprResult Result = getDerived().TransformExpr(SrcExprs[i]);
7696 if (!HadChange && !getDerived().AlwaysRebuild())
7699 return getDerived().RebuildMSAsmStmt(S->getAsmLoc(), S->getLBraceLoc(),
7734 getDerived().transformedLocalDecl(S->getPromiseDecl(), {Promise});
7740 StmtResult InitSuspend = getDerived().TransformStmt(S->getInitSuspendStmt());
7744 getDerived().TransformStmt(S->getFinalSuspendStmt());
7751 StmtResult BodyRes = getDerived().TransformStmt(S->getBody());
7761 ExprResult Res = getDerived().TransformInitializer(ReturnObject,
7782 StmtResult Res = getDerived().TransformStmt(OnFallthrough);
7789 StmtResult Res = getDerived().TransformStmt(OnException);
7796 StmtResult Res = getDerived().TransformStmt(OnAllocFailure);
7805 ExprResult AllocRes = getDerived().TransformExpr(S->getAllocate());
7810 ExprResult DeallocRes = getDerived().TransformExpr(S->getDeallocate());
7816 StmtResult ResultDecl = getDerived().TransformStmt(S->getResultDecl());
7822 StmtResult Res = getDerived().TransformStmt(ReturnStmt);
7829 return getDerived().RebuildCoroutineBodyStmt(Builder);
7835 ExprResult Result = getDerived().TransformInitializer(S->getOperand(),
7842 return getDerived().RebuildCoreturnStmt(S->getKeywordLoc(), Result.get(),
7849 ExprResult Result = getDerived().TransformInitializer(E->getOperand(),
7856 return getDerived
7863 ExprResult OperandResult = getDerived().TransformInitializer(E->getOperand(),
7868 ExprResult LookupResult = getDerived().TransformUnresolvedLookupExpr(
7876 return getDerived().RebuildDependentCoawaitExpr(
7884 ExprResult Result = getDerived().TransformInitializer(E->getOperand(),
7891 return getDerived().RebuildCoyieldExpr(E->getKeywordLoc(), Result.get());
7900 StmtResult TryBody = getDerived().TransformStmt(S->getTryBody());
7908 StmtResult Catch = getDerived().TransformStmt(S->getCatchStmt(I));
7919 Finally = getDerived().TransformStmt(S->getFinallyStmt());
7925 if (!getDerived().AlwaysRebuild() &&
7932 return getDerived().RebuildObjCAtTryStmt(S->getAtTryLoc(), TryBody.get(),
7944 TSInfo = getDerived().TransformType(FromVar->getTypeSourceInfo());
7953 T = getDerived().TransformType(FromVar->getType());
7958 Var = getDerived().RebuildObjCExceptionDecl(FromVar, TSInfo, T);
7963 StmtResult Body = getDerived().TransformStmt(S->getCatchBody());
7967 return getDerived().RebuildObjCAtCatchStmt(S->getAtCatchLoc(),
7976 StmtResult Body = getDerived().TransformStmt(S->getFinallyBody());
7981 if (!getDerived().AlwaysRebuild() &&
7986 return getDerived().RebuildObjCAtFinallyStmt(S->getAtFinallyLoc(),
7995 Operand = getDerived().TransformExpr(S->getThrowExpr());
8000 if (!getDerived().AlwaysRebuild() &&
8004 return getDerived().RebuildObjCAtThrowStmt(S->getThrowLoc(), Operand.get());
8012 ExprResult Object = getDerived().TransformExpr(S->getSynchExpr());
8016 getDerived().RebuildObjCAtSynchronizedOperand(S->getAtSynchronizedLoc(),
8022 StmtResult Body = getDerived().TransformStmt(S->getSynchBody());
8027 if (!getDerived().AlwaysRebuild() &&
8033 return getDerived().RebuildObjCAtSynchronizedStmt(S->getAtSynchronizedLoc(),
8042 StmtResult Body = getDerived().TransformStmt(S->getSubStmt());
8047 if (!getDerived().AlwaysRebuild() &&
8052 return getDerived().RebuildObjCAutoreleasePoolStmt(
8062 getDerived().TransformStmt(S->getElement(), SDK_NotDiscarded);
8067 ExprResult Collection = getDerived().TransformExpr(S->getCollection());
8072 StmtResult Body = getDerived().TransformStmt(S->getBody());
8077 if (!getDerived().AlwaysRebuild() &&
8084 return getDerived().RebuildObjCForCollectionStmt(S->getForLoc(),
8097 getDerived().TransformType(ExceptionDecl->getTypeSourceInfo());
8101 Var = getDerived().RebuildExceptionDecl(
8109 StmtResult Handler = getDerived().TransformStmt(S->getHandlerBlock());
8113 if (!getDerived().AlwaysRebuild() && !Var &&
8117 return getDerived().RebuildCXXCatchStmt(S->getCatchLoc(), Var, Handler.get());
8123 StmtResult TryBlock = getDerived().TransformCompoundStmt(S->getTryBlock());
8131 StmtResult Handler = getDerived().TransformCXXCatchStmt(S->getHandler(I));
8139 if (!getDerived().AlwaysRebuild() && TryBlock.get() == S->getTryBlock() &&
8143 return getDerived().RebuildCXXTryStmt(S->getTryLoc(), TryBlock.get(),
8151 S->getInit() ? getDerived().TransformStmt(S->getInit()) : StmtResult();
8155 StmtResult Range = getDerived().TransformStmt(S->getRangeStmt());
8159 StmtResult Begin = getDerived().TransformStmt(S->getBeginStmt());
8162 StmtResult End = getDerived().TransformStmt(S->getEndStmt());
8166 ExprResult Cond = getDerived().TransformExpr(S->getCond());
8176 ExprResult Inc = getDerived().TransformExpr(S->getInc());
8182 StmtResult LoopVar = getDerived().TransformStmt(S->getLoopVarStmt());
8187 if (getDerived().AlwaysRebuild() ||
8195 NewStmt = getDerived().RebuildCXXForRangeStmt(S->getForLoc(),
8210 StmtResult Body = getDerived().TransformStmt(S->getBody());
8217 NewStmt = getDerived().RebuildCXXForRangeStmt(S->getForLoc(),
8242 = getDerived().TransformNestedNameSpecifierLoc(S->getQualifierLoc());
8250 NameInfo = getDerived().TransformDeclarationNameInfo(NameInfo);
8256 if (!getDerived().AlwaysRebuild() &&
8287 StmtResult SubStmt = getDerived().TransformCompoundStmt(S->getSubStmt());
8296 return getDerived().RebuildMSDependentExistsStmt(S->getKeywordLoc(),
8309 = getDerived().TransformNestedNameSpecifierLoc(E->getQualifierLoc());
8315 getDerived().TransformDecl(E->getMemberLoc(), E->getPropertyDecl()));
8319 ExprResult Base = getDerived().TransformExpr(E->getBaseExpr());
8332 auto BaseRes = getDerived().TransformExpr(E->getBase());
8335 auto IdxRes = getDerived().TransformExpr(E->getIdx());
8339 if (!getDerived().AlwaysRebuild() &&
8344 return getDerived().RebuildArraySubscriptExpr(
8350 StmtResult TryBlock = getDerived().TransformCompoundStmt(S->getTryBlock());
8354 StmtResult Handler = getDerived().TransformSEHHandler(S->getHandler());
8358 if (!getDerived().AlwaysRebuild() && TryBlock.get() == S->getTryBlock() &&
8362 return getDerived().RebuildSEHTryStmt(S->getIsCXXTry(), S->getTryLoc(),
8368 StmtResult Block = getDerived().TransformCompoundStmt(S->getBlock());
8372 return getDerived().RebuildSEHFinallyStmt(S->getFinallyLoc(), Block.get());
8377 ExprResult FilterExpr = getDerived().TransformExpr(S->getFilterExpr());
8381 StmtResult Block = getDerived().TransformCompoundStmt(S->getBlock());
8385 return getDerived().RebuildSEHExceptStmt(S->getExceptLoc(), FilterExpr.get(),
8392 return getDerived().TransformSEHFinallyStmt(cast<SEHFinallyStmt>(Handler));
8394 return getDerived().TransformSEHExceptStmt(cast<SEHExceptStmt>(Handler));
8413 return getDerived().TransformStmt(L->getLoopStmt());
8427 getDerived().getSema().StartOpenMPClause((*I)->getClauseKind());
8428 OMPClause *Clause = getDerived().TransformOMPClause(*I);
8429 getDerived().getSema().EndOpenMPClause();
8438 getDerived().getSema().ActOnOpenMPRegionStart(D->getDirectiveKind(),
8451 Body = getDerived().TransformStmt(CS);
8454 Body = getDerived().RebuildOMPCanonicalLoop(Body.get());
8457 getDerived().getSema().ActOnOpenMPRegionEnd(Body, TClauses);
8470 DirName = getDerived().TransformDeclarationNameInfo(DirName);
8479 return getDerived().RebuildOMPExecutableDirective(
8488 getDerived().getSema().StartOpenMPDSABlock(OMPD_parallel, DirName, nullptr,
8490 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8491 getDerived().getSema().EndOpenMPDSABlock(Res.get());
8499 getDerived().getSema().StartOpenMPDSABlock(OMPD_simd, DirName, nullptr,
8501 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8502 getDerived().getSema().EndOpenMPDSABlock(Res.get());
8510 getDerived().getSema().StartOpenMPDSABlock(D->getDirectiveKind(), DirName,
8512 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8513 getDerived().getSema().EndOpenMPDSABlock(Res.get());
8521 getDerived().getSema().StartOpenMPDSABlock(OMPD_for, DirName, nullptr,
8523 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8524 getDerived().getSema().EndOpenMPDSABlock(Res.get());
8532 getDerived().getSema().StartOpenMPDSABlock(OMPD_for_simd, DirName, nullptr,
8534 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8535 getDerived().getSema().EndOpenMPDSABlock(Res.get());
8543 getDerived().getSema().StartOpenMPDSABlock(OMPD_sections, DirName, nullptr,
8545 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8546 getDerived().getSema().EndOpenMPDSABlock(Res.get());
8554 getDerived().getSema().StartOpenMPDSABlock(OMPD_section, DirName, nullptr,
8556 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8557 getDerived().getSema().EndOpenMPDSABlock(Res.get());
8565 getDerived().getSema().StartOpenMPDSABlock(OMPD_single, DirName, nullptr,
8567 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8568 getDerived().getSema().EndOpenMPDSABlock(Res.get());
8576 getDerived().getSema().StartOpenMPDSABlock(OMPD_master, DirName, nullptr,
8578 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8579 getDerived().getSema().EndOpenMPDSABlock(Res.get());
8586 getDerived().getSema().StartOpenMPDSABlock(
8588 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8589 getDerived().getSema().EndOpenMPDSABlock(Res.get());
8597 getDerived().getSema().StartOpenMPDSABlock(OMPD_parallel_for, DirName,
8599 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8600 getDerived().getSema().EndOpenMPDSABlock(Res.get());
8608 getDerived().getSema().StartOpenMPDSABlock(OMPD_parallel_for_simd, DirName,
8610 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8611 getDerived().getSema().EndOpenMPDSABlock(Res.get());
8619 getDerived().getSema().StartOpenMPDSABlock(OMPD_parallel_master, DirName,
8621 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8622 getDerived().getSema().EndOpenMPDSABlock(Res.get());
8630 getDerived().getSema().StartOpenMPDSABlock(OMPD_parallel_sections, DirName,
8632 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8633 getDerived().getSema().EndOpenMPDSABlock(Res.get());
8641 getDerived().getSema().StartOpenMPDSABlock(OMPD_task, DirName, nullptr,
8643 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8644 getDerived().getSema().EndOpenMPDSABlock(Res.get());
8652 getDerived().getSema().StartOpenMPDSABlock(OMPD_taskyield, DirName, nullptr,
8654 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8655 getDerived().getSema().EndOpenMPDSABlock(Res.get());
8663 getDerived().getSema().StartOpenMPDSABlock(OMPD_barrier, DirName, nullptr,
8665 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8666 getDerived().getSema().EndOpenMPDSABlock(Res.get());
8674 getDerived().getSema().StartOpenMPDSABlock(OMPD_taskwait, DirName, nullptr,
8676 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8677 getDerived().getSema().EndOpenMPDSABlock(Res.get());
8685 getDerived().getSema().StartOpenMPDSABlock(OMPD_taskgroup, DirName, nullptr,
8687 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8688 getDerived().getSema().EndOpenMPDSABlock(Res.get());
8696 getDerived().getSema().StartOpenMPDSABlock(OMPD_flush, DirName, nullptr,
8698 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8699 getDerived().getSema().EndOpenMPDSABlock(Res.get());
8707 getDerived().getSema().StartOpenMPDSABlock(OMPD_depobj, DirName, nullptr,
8709 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8710 getDerived().getSema().EndOpenMPDSABlock(Res.get());
8718 getDerived().getSema().StartOpenMPDSABlock(OMPD_scan, DirName, nullptr,
8720 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8721 getDerived().getSema().EndOpenMPDSABlock(Res.get());
8729 getDerived().getSema().StartOpenMPDSABlock(OMPD_ordered, DirName, nullptr,
8731 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8732 getDerived().getSema().EndOpenMPDSABlock(Res.get());
8740 getDerived().getSema().StartOpenMPDSABlock(OMPD_atomic, DirName, nullptr,
8742 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8743 getDerived().getSema().EndOpenMPDSABlock(Res.get());
8751 getDerived().getSema().StartOpenMPDSABlock(OMPD_target, DirName, nullptr,
8753 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8754 getDerived().getSema().EndOpenMPDSABlock(Res.get());
8762 getDerived().getSema().StartOpenMPDSABlock(OMPD_target_data, DirName, nullptr,
8764 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8765 getDerived
8773 getDerived().getSema().StartOpenMPDSABlock(OMPD_target_enter_data, DirName,
8775 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8776 getDerived().getSema().EndOpenMPDSABlock(Res.get());
8784 getDerived().getSema().StartOpenMPDSABlock(OMPD_target_exit_data, DirName,
8786 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8787 getDerived().getSema().EndOpenMPDSABlock(Res.get());
8795 getDerived().getSema().StartOpenMPDSABlock(OMPD_target_parallel, DirName,
8797 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8798 getDerived().getSema().EndOpenMPDSABlock(Res.get());
8806 getDerived().getSema().StartOpenMPDSABlock(OMPD_target_parallel_for, DirName,
8808 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8809 getDerived().getSema().EndOpenMPDSABlock(Res.get());
8817 getDerived().getSema().StartOpenMPDSABlock(OMPD_target_update, DirName,
8819 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8820 getDerived().getSema().EndOpenMPDSABlock(Res.get());
8828 getDerived().getSema().StartOpenMPDSABlock(OMPD_teams, DirName, nullptr,
8830 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8831 getDerived().getSema().EndOpenMPDSABlock(Res.get());
8839 getDerived().getSema().StartOpenMPDSABlock(OMPD_cancellation_point, DirName,
8841 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8842 getDerived().getSema().EndOpenMPDSABlock(Res.get());
8850 getDerived().getSema().StartOpenMPDSABlock(OMPD_cancel, DirName, nullptr,
8852 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8853 getDerived().getSema().EndOpenMPDSABlock(Res.get());
8861 getDerived().getSema().StartOpenMPDSABlock(OMPD_taskloop, DirName, nullptr,
8863 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8864 getDerived().getSema().EndOpenMPDSABlock(Res.get());
8872 getDerived().getSema().StartOpenMPDSABlock(OMPD_taskloop_simd, DirName,
8874 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8875 getDerived().getSema().EndOpenMPDSABlock(Res.get());
8883 getDerived().getSema().StartOpenMPDSABlock(OMPD_master_taskloop, DirName,
8885 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8886 getDerived().getSema().EndOpenMPDSABlock(Res.get());
8894 getDerived().getSema().StartOpenMPDSABlock(OMPD_master_taskloop_simd, DirName,
8896 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8897 getDerived().getSema().EndOpenMPDSABlock(Res.get());
8905 getDerived().getSema().StartOpenMPDSABlock(
8907 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8908 getDerived().getSema().EndOpenMPDSABlock(Res.get());
8917 getDerived().getSema().StartOpenMPDSABlock(
8919 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8920 getDerived().getSema().EndOpenMPDSABlock(Res.get());
8928 getDerived().getSema().StartOpenMPDSABlock(OMPD_distribute, DirName, nullptr,
8930 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8931 getDerived().getSema().EndOpenMPDSABlock(Res.get());
8939 getDerived().getSema().StartOpenMPDSABlock(
8941 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8942 getDerived().getSema().EndOpenMPDSABlock(Res.get());
8951 getDerived().getSema().StartOpenMPDSABlock(
8953 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8954 getDerived().getSema().EndOpenMPDSABlock(Res.get());
8962 getDerived().getSema().StartOpenMPDSABlock(OMPD_distribute_simd, DirName,
8964 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8965 getDerived().getSema().EndOpenMPDSABlock(Res.get());
8973 getDerived().getSema().StartOpenMPDSABlock(
8975 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8976 getDerived().getSema().EndOpenMPDSABlock(Res.get());
8984 getDerived().getSema().StartOpenMPDSABlock(OMPD_target_simd, DirName, nullptr,
8986 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8987 getDerived().getSema().EndOpenMPDSABlock(Res.get());
8995 getDerived().getSema().StartOpenMPDSABlock(OMPD_teams_distribute, DirName,
8997 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
8998 getDerived().getSema().EndOpenMPDSABlock(Res.get());
9006 getDerived().getSema().StartOpenMPDSABlock(
9008 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9009 getDerived().getSema().EndOpenMPDSABlock(Res.get());
9017 getDerived().getSema().StartOpenMPDSABlock(
9020 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9021 getDerived().getSema().EndOpenMPDSABlock(Res.get());
9029 getDerived().getSema().StartOpenMPDSABlock(
9031 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9032 getDerived().getSema().EndOpenMPDSABlock(Res.get());
9040 getDerived().getSema().StartOpenMPDSABlock(OMPD_target_teams, DirName,
9042 auto Res = getDerived().TransformOMPExecutableDirective(D);
9043 getDerived().getSema().EndOpenMPDSABlock(Res.get());
9051 getDerived().getSema().StartOpenMPDSABlock(
9053 auto Res = getDerived().TransformOMPExecutableDirective(D);
9054 getDerived().getSema().EndOpenMPDSABlock(Res.get());
9063 getDerived().getSema().StartOpenMPDSABlock(
9066 auto Res = getDerived().TransformOMPExecutableDirective(D);
9067 getDerived().getSema().EndOpenMPDSABlock(Res.get());
9076 getDerived().getSema().StartOpenMPDSABlock(
9079 auto Res = getDerived().TransformOMPExecutableDirective(D);
9080 getDerived().getSema().EndOpenMPDSABlock(Res.get());
9089 getDerived().getSema().StartOpenMPDSABlock(
9091 auto Res = getDerived().TransformOMPExecutableDirective(D);
9092 getDerived().getSema().EndOpenMPDSABlock(Res.get());
9100 getDerived().getSema().StartOpenMPDSABlock(OMPD_interop, DirName, nullptr,
9102 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9103 getDerived().getSema().EndOpenMPDSABlock(Res.get());
9111 getDerived().getSema().StartOpenMPDSABlock(OMPD_dispatch, DirName, nullptr,
9113 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9114 getDerived().getSema().EndOpenMPDSABlock(Res.get());
9122 getDerived().getSema().StartOpenMPDSABlock(OMPD_masked, DirName, nullptr,
9124 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
9125 getDerived().getSema().EndOpenMPDSABlock(Res.get());
9134 ExprResult Cond = getDerived().TransformExpr(C->getCondition());
9137 return getDerived().RebuildOMPIfClause(
9144 ExprResult Cond = getDerived().TransformExpr(C->getCondition());
9147 return getDerived().RebuildOMPFinalClause(Cond.get(), C->getBeginLoc(),
9154 ExprResult NumThreads = getDerived().TransformExpr(C->getNumThreads());
9157 return getDerived().RebuildOMPNumThreadsClause(
9164 ExprResult E = getDerived().TransformExpr(C->getSafelen());
9167 return getDerived().RebuildOMPSafelenClause(
9174 ExprResult E = getDerived().TransformExpr(C->getAllocator());
9177 return getDerived
9184 ExprResult E = getDerived().TransformExpr(C->getSimdlen());
9187 return getDerived().RebuildOMPSimdlenClause(
9202 ExprResult T = getDerived().TransformExpr(E);
9210 if (!Changed && !getDerived().AlwaysRebuild())
9219 ExprResult E = getDerived().TransformExpr(C->getNumForLoops());
9222 return getDerived().RebuildOMPCollapseClause(
9229 return getDerived().RebuildOMPDefaultClause(
9237 return getDerived().RebuildOMPProcBindClause(
9245 ExprResult E = getDerived().TransformExpr(C->getChunkSize());
9248 return getDerived().RebuildOMPScheduleClause(
9260 E = getDerived().TransformExpr(Num);
9264 return getDerived().RebuildOMPOrderedClause(C->getBeginLoc(), C->getEndLoc(),
9273 E = getDerived().TransformExpr(Evt);
9277 return getDerived().RebuildOMPDetachClause(E.get(), C->getBeginLoc(),
9385 ExprResult IVR = getDerived().TransformExpr(C->getInteropVar());
9392 ExprResult ER = getDerived().TransformExpr(cast<Expr>(E));
9397 return getDerived().RebuildOMPInitClause(
9404 ExprResult ER = getDerived().TransformExpr(C->getInteropVar());
9407 return getDerived().RebuildOMPUseClause(ER.get(), C->getBeginLoc(),
9417 ER = getDerived().TransformExpr(IV);
9421 return getDerived().RebuildOMPDestroyClause(ER.get(), C->getBeginLoc(),
9429 ExprResult Cond = getDerived().TransformExpr(C->getCondition());
9432 return getDerived().RebuildOMPNovariantsClause(
9439 ExprResult Cond = getDerived().TransformExpr(C->getCondition());
9442 return getDerived().RebuildOMPNocontextClause(
9449 ExprResult ThreadID = getDerived().TransformExpr(C->getThreadID());
9452 return getDerived().RebuildOMPFilterClause(ThreadID.get(), C->getBeginLoc(),
9495 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
9500 return getDerived().RebuildOMPPrivateClause(
9510 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
9515 return getDerived().RebuildOMPFirstprivateClause(
9525 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
9530 return getDerived().RebuildOMPLastprivateClause(
9541 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
9546 return getDerived().RebuildOMPSharedClause(Vars, C->getBeginLoc(),
9556 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
9566 NameInfo = getDerived().TransformDeclarationNameInfo(NameInfo);
9580 cast<NamedDecl>(getDerived().TransformDecl(E->getExprLoc(), D));
9592 return getDerived().RebuildOMPReductionClause(
9604 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
9614 NameInfo = getDerived().TransformDeclarationNameInfo(NameInfo);
9628 cast<NamedDecl>(getDerived().TransformDecl(E->getExprLoc(), D));
9638 return getDerived().RebuildOMPTaskReductionClause(
9649 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
9659 NameInfo = getDerived().TransformDeclarationNameInfo(NameInfo);
9673 cast<NamedDecl>(getDerived().TransformDecl(E->getExprLoc(), D));
9683 return getDerived().RebuildOMPInReductionClause(
9694 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
9699 ExprResult Step = getDerived().TransformExpr(C->getStep());
9702 return getDerived().RebuildOMPLinearClause(
9713 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
9718 ExprResult Alignment = getDerived().TransformExpr(C->getAlignment());
9721 return getDerived().RebuildOMPAlignedClause(
9732 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
9737 return getDerived().RebuildOMPCopyinClause(Vars, C->getBeginLoc(),
9747 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
9752 return getDerived().RebuildOMPCopyprivateClause(
9761 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
9766 return getDerived().RebuildOMPFlushClause(Vars, C->getBeginLoc(),
9773 ExprResult E = getDerived().TransformExpr(C->getDepobj());
9776 return getDerived().RebuildOMPDepobjClause(E.get(), C->getBeginLoc(),
9786 ExprResult DepModRes = getDerived().TransformExpr(DepModifier);
9793 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
9798 return getDerived().RebuildOMPDependClause(
9807 ExprResult E = getDerived().TransformExpr(C->getDevice());
9810 return getDerived().RebuildOMPDeviceClause(
9824 ExprResult EVar = TT.getDerived().TransformExpr(cast<Expr>(VE));
9832 QualifierLoc = TT.getDerived().TransformNestedNameSpecifierLoc(
9840 MapperIdInfo = TT.getDerived().TransformDeclarationNameInfo(MapperIdInfo);
9853 cast<NamedDecl>(TT.getDerived().TransformDecl(E->getExprLoc(), D));
9878 return getDerived().RebuildOMPMapClause(
9889 ExprResult AllocatorRes = getDerived().TransformExpr(Allocator);
9897 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
9902 return getDerived().RebuildOMPAllocateClause(
9910 ExprResult E = getDerived().TransformExpr(C->getNumTeams());
9913 return getDerived().RebuildOMPNumTeamsClause(
9920 ExprResult E = getDerived().TransformExpr(C->getThreadLimit());
9923 return getDerived().RebuildOMPThreadLimitClause(
9930 ExprResult E = getDerived().TransformExpr(C->getPriority());
9933 return getDerived().RebuildOMPPriorityClause(
9940 ExprResult E = getDerived().TransformExpr(C->getGrainsize());
9943 return getDerived().RebuildOMPGrainsizeClause(
9950 ExprResult E = getDerived().TransformExpr(C->getNumTasks());
9953 return getDerived().RebuildOMPNumTasksClause(
9959 ExprResult E = getDerived().TransformExpr(C->getHint());
9962 return getDerived().RebuildOMPHintClause(E.get(), C->getBeginLoc(),
9969 ExprResult E = getDerived().TransformExpr(C->getChunkSize());
9972 return getDerived().RebuildOMPDistScheduleClause(
9982 return getDerived().RebuildOMPDefaultmapClause(C->getDefaultmapModifier(),
10001 return getDerived().RebuildOMPToClause(
10016 return getDerived().RebuildOMPFromClause(
10027 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
10033 return getDerived().RebuildOMPUseDevicePtrClause(Vars, Locs);
10042 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
10048 return getDerived().RebuildOMPUseDeviceAddrClause(Vars, Locs);
10057 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
10063 return getDerived().RebuildOMPIsDevicePtrClause(Vars, Locs);
10072 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
10077 return getDerived().RebuildOMPNontemporalClause(
10087 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
10092 return getDerived().RebuildOMPInclusiveClause(
10102 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
10107 return getDerived().RebuildOMPExclusiveClause(
10118 ExprResult Allocator = getDerived().TransformExpr(D.Allocator);
10123 AllocatorTraits = getDerived().TransformExpr(AT);
10133 return getDerived().RebuildOMPUsesAllocatorsClause(
10144 ModifierRes = getDerived().TransformExpr(Modifier);
10149 ExprResult Locator = getDerived().TransformExpr(E);
10154 return getDerived().RebuildOMPAffinityClause(
10161 return getDerived().RebuildOMPOrderClause(C->getKind(), C->getKindKwLoc(),
10181 return getDerived().RebuildPredefinedExpr(E->getLocation(),
10191 = getDerived().TransformNestedNameSpecifierLoc(E->getQualifierLoc());
10197 = cast_or_null<ValueDecl>(getDerived().TransformDecl(E->getLocation(),
10205 getDerived().TransformDecl(E->getLocation(), E->getFoundDecl()));
10212 NameInfo = getDerived().TransformDeclarationNameInfo(NameInfo);
10217 if (!getDerived().AlwaysRebuild() &&
10236 if (getDerived().TransformTemplateArguments(E->getTemplateArgs(),
10242 return getDerived().RebuildDeclRefExpr(QualifierLoc, ND, NameInfo,
10294 getDerived().TransformExpr(E->getControllingExpr());
10303 TypeSourceInfo *AssocType = getDerived().TransformType(TSI);
10312 getDerived().TransformExpr(Assoc.getAssociationExpr());
10318 return getDerived().RebuildGenericSelectionExpr(E->getGenericLoc(),
10329 ExprResult SubExpr = getDerived().TransformExpr(E->getSubExpr());
10333 if (!getDerived().AlwaysRebuild() && SubExpr.get() == E->getSubExpr())
10336 return getDerived().RebuildParenExpr(SubExpr.get(), E->getLParen(),
10347 return getDerived().TransformDependentScopeDeclRefExpr(DRE, true, nullptr);
10349 return getDerived().TransformExpr(E);
10363 if (!getDerived().AlwaysRebuild() && SubExpr.get() == E->getSubExpr())
10366 return getDerived().RebuildUnaryOperator(E->getOperatorLoc(),
10375 TypeSourceInfo *Type = getDerived().TransformType(E->getTypeSourceInfo());
10397 ExprResult Index = getDerived().TransformExpr(FromIndex);
10425 if (!getDerived().AlwaysRebuild() &&
10431 return getDerived().RebuildOffsetOfExpr(E->getOperatorLoc(), Type,
10438 assert((!E->getSourceExpr() || getDerived().AlreadyTransformed(E->getType())) &&
10454 ExprResult NewC = getDerived().TransformExpr(C);
10461 if (!getDerived().AlwaysRebuild() && !Changed)
10463 return getDerived().RebuildRecoveryExpr(E->getBeginLoc(), E->getEndLoc(),
10477 ExprResult result = getDerived().TransformExpr(newSyntacticForm);
10496 TypeSourceInfo *NewT = getDerived().TransformType(OldT);
10500 if (!getDerived().AlwaysRebuild() && OldT == NewT)
10503 return getDerived().RebuildUnaryExprOrTypeTrait(NewT, E->getOperatorLoc(),
10522 SubExpr = getDerived().TransformParenDependentScopeDeclRefExpr(
10525 SubExpr = getDerived().TransformExpr(E->getArgumentExpr());
10528 return getDerived().RebuildUnaryExprOrTypeTrait(
10533 if (!getDerived().AlwaysRebuild() && SubExpr.get() == E->getArgumentExpr())
10536 return getDerived().RebuildUnaryExprOrTypeTrait(SubExpr.get(),
10545 ExprResult LHS = getDerived().TransformExpr(E->getLHS());
10549 ExprResult RHS = getDerived().TransformExpr(E->getRHS());
10554 if (!getDerived().AlwaysRebuild() &&
10559 return getDerived().RebuildArraySubscriptExpr(
10567 ExprResult Base = getDerived().TransformExpr(E->getBase());
10571 ExprResult RowIdx = getDerived().TransformExpr(E->getRowIdx());
10575 ExprResult ColumnIdx = getDerived().TransformExpr(E->getColumnIdx());
10579 if (!getDerived().AlwaysRebuild() && Base.get() == E->getBase() &&
10583 return getDerived().RebuildMatrixSubscriptExpr(
10590 ExprResult Base = getDerived().TransformExpr(E->getBase());
10596 LowerBound = getDerived().TransformExpr(E->getLowerBound());
10603 Length = getDerived().TransformExpr(E->getLength());
10610 Stride = getDerived().TransformExpr(Str);
10615 if (!getDerived().AlwaysRebuild() && Base.get() == E->getBase() &&
10619 return getDerived().RebuildOMPArraySectionExpr(
10628 ExprResult Base = getDerived().TransformExpr(E->getBase());
10635 ExprResult DimRes = getDerived().TransformExpr(Dim);
10645 return getDerived().RebuildOMPArrayShapingExpr(Base.get(), E->getLParenLoc(),
10657 bool NeedToRebuild = getDerived().AlwaysRebuild();
10666 TypeSourceInfo *TSI = getDerived().TransformType(D->getTypeSourceInfo());
10667 QualType DeclTy = getDerived().TransformType(D->getType());
10671 ExprResult Begin = getDerived().TransformExpr(Range.Begin);
10672 ExprResult End = getDerived().TransformExpr(Range.End);
10673 ExprResult Step = getDerived().TransformExpr(Range.Step);
10698 ExprResult Res = getDerived().RebuildOMPIteratorExpr(
10704 getDerived().transformedLocalDecl(E->getIteratorDecl(I),
10713 ExprResult Callee = getDerived().TransformExpr(E->getCallee());
10720 if (getDerived().TransformExprs(E->getArgs(), E->getNumArgs(), true, Args,
10724 if (!getDerived().AlwaysRebuild() &&
10741 return getDerived().RebuildCallExpr(Callee.get(), FakeLParenLoc,
10749 ExprResult Base = getDerived().TransformExpr(E->getBase());
10756 = getDerived().TransformNestedNameSpecifierLoc(E->getQualifierLoc());
10764 = cast_or_null<ValueDecl>(getDerived().TransformDecl(E->getMemberLoc(),
10774 getDerived().TransformDecl(E->getMemberLoc(), FoundDecl));
10779 if (!getDerived().AlwaysRebuild() &&
10797 if (getDerived().TransformTemplateArguments(E->getTemplateArgs(),
10814 MemberNameInfo = getDerived().TransformDeclarationNameInfo(MemberNameInfo);
10819 return getDerived().RebuildMemberExpr(Base.get(), FakeOperatorLoc,
10834 ExprResult LHS = getDerived().TransformExpr(E->getLHS());
10838 ExprResult RHS = getDerived().TransformExpr(E->getRHS());
10842 if (!getDerived().AlwaysRebuild() &&
10849 return getDerived().RebuildBinaryOperator(
10856 return getDerived().RebuildBinaryOperator(E->getOperatorLoc(), E->getOpcode(),
10865 ExprResult LHS = getDerived().TransformExpr(const_cast<Expr*>(Decomp.LHS));
10869 ExprResult RHS = getDerived().TransformExpr(const_cast<Expr*>(Decomp.RHS));
10873 if (!getDerived().AlwaysRebuild() &&
10893 NamedDecl *Found = cast_or_null<NamedDecl>(getDerived().TransformDecl(
10900 return getDerived().RebuildCXXRewrittenBinaryOperator(
10913 return getDerived().TransformBinaryOperator(E);
10922 ExprResult commonExpr = getDerived().TransformExpr(e->getCommon());
10926 ExprResult rhs = getDerived().TransformExpr(e->getFalseExpr());
10930 if (!getDerived().AlwaysRebuild() &&
10935 return getDerived().RebuildConditionalOperator(commonExpr.get(),
10945 ExprResult Cond = getDerived().TransformExpr(E->getCond());
10949 ExprResult LHS = getDerived().TransformExpr(E->getLHS());
10953 ExprResult RHS = getDerived().TransformExpr(E->getRHS());
10957 if (!getDerived().AlwaysRebuild() &&
10963 return getDerived().RebuildConditionalOperator(Cond.get(),
10975 return getDerived().TransformExpr(E->getSubExprAsWritten());
10981 TypeSourceInfo *Type = getDerived().TransformType(E->getTypeInfoAsWritten());
10986 = getDerived().TransformExpr(E->getSubExprAsWritten());
10990 if (!getDerived().AlwaysRebuild() &&
10995 return getDerived().RebuildCStyleCastExpr(E->getLParenLoc(),
11005 TypeSourceInfo *NewT = getDerived().TransformType(OldT);
11009 ExprResult Init = getDerived().TransformExpr(E->getInitializer());
11013 if (!getDerived().AlwaysRebuild() &&
11022 return getDerived().RebuildCompoundLiteralExpr(
11030 ExprResult Base = getDerived().TransformExpr(E->getBase());
11034 if (!getDerived().AlwaysRebuild() &&
11041 return getDerived().RebuildExtVectorElementExpr(Base.get(), FakeOperatorLoc,
11058 if (getDerived().TransformExprs(E->getInits(), E->getNumInits(), false,
11062 if (!getDerived().AlwaysRebuild() && !InitChanged) {
11069 return getDerived().RebuildInitList(E->getLBraceLoc(), Inits,
11079 ExprResult Init = getDerived().TransformExpr(E->getInit());
11093 getDerived().TransformDecl(D.getFieldLoc(), D.getField()));
11108 ExprResult Index = getDerived().TransformExpr(E->getArrayIndex(D));
11122 = getDerived().TransformExpr(E->getArrayRangeStart(D));
11126 ExprResult End = getDerived().TransformExpr(E->getArrayRangeEnd(D));
11142 if (!getDerived().AlwaysRebuild() &&
11147 return getDerived().RebuildDesignatedInitExpr(Desig, ArrayExprs,
11193 QualType T = getDerived().TransformType(E->getType());
11197 if (!getDerived().AlwaysRebuild() &&
11201 return getDerived().RebuildImplicitValueInitExpr(T);
11207 TypeSourceInfo *TInfo = getDerived().TransformType(E->getWrittenTypeInfo());
11211 ExprResult SubExpr = getDerived().TransformExpr(E->getSubExpr());
11215 if (!getDerived().AlwaysRebuild() &&
11220 return getDerived().RebuildVAArgExpr(E->getBuiltinLoc(), SubExpr.get(),
11233 return getDerived().RebuildParenListExpr(E->getLParenLoc(),
11246 Decl *LD = getDerived().TransformDecl(E->getLabel()->getLocation(),
11251 return getDerived().RebuildAddrLabelExpr(E->getAmpAmpLoc(), E->getLabelLoc(),
11260 = getDerived().TransformCompoundStmt(E->getSubStmt(), true);
11267 unsigned NewDepth = getDerived().TransformTemplateDepth(OldDepth);
11269 if (!getDerived().AlwaysRebuild() && OldDepth == NewDepth &&
11276 return getDerived().RebuildStmtExpr(E->getLParenLoc(), SubStmt.get(),
11283 ExprResult Cond = getDerived().TransformExpr(E->getCond());
11287 ExprResult LHS = getDerived().TransformExpr(E->getLHS());
11291 ExprResult RHS = getDerived().TransformExpr(E->getRHS());
11295 if (!getDerived().AlwaysRebuild() &&
11301 return getDerived().RebuildChooseExpr(E->getBuiltinLoc(),
11327 ExprResult Object = getDerived().TransformExpr(E->getArg(0));
11337 if (getDerived().TransformExprs(E->getArgs() + 1, E->getNumArgs() - 1, true,
11341 return getDerived().RebuildCallExpr(Object.get(), FakeLParenLoc, Args,
11361 ExprResult Callee = getDerived().TransformExpr(E->getCallee());
11367 First = getDerived().TransformAddressOfOperand(E->getArg(0));
11369 First = getDerived().TransformExpr(E->getArg(0));
11375 Second = getDerived().TransformExpr(E->getArg(1));
11380 if (!getDerived().AlwaysRebuild() &&
11392 return getDerived().RebuildCXXOperatorCallExpr(E->getOperator(),
11402 return getDerived().TransformCallExpr(E);
11410 if (!getDerived().AlwaysRebuild() && !NeedRebuildFunc)
11413 return getDerived().RebuildSourceLocExpr(E->getIdentKind(), E->getBeginLoc(),
11422 ExprResult Callee = getDerived().TransformExpr(E->getCallee());
11427 ExprResult EC = getDerived().TransformCallExpr(E->getConfig());
11434 if (getDerived().TransformExprs(E->getArgs(), E->getNumArgs(), true, Args,
11438 if (!getDerived().AlwaysRebuild() &&
11446 return getDerived().RebuildCallExpr(Callee.get(), FakeLParenLoc,
11454 TypeSourceInfo *Type = getDerived().TransformType(E->getTypeInfoAsWritten());
11459 = getDerived().TransformExpr(E->getSubExprAsWritten());
11463 if (!getDerived().AlwaysRebuild() &&
11467 return getDerived().RebuildCXXNamedCastExpr(
11478 getDerived().TransformType(BCE->getTypeInfoAsWritten());
11482 ExprResult Sub = getDerived().TransformExpr(BCE->getSubExpr());
11486 return getDerived().RebuildBuiltinBitCastExpr(BCE->getBeginLoc(), TSI,
11493 return getDerived().TransformCXXNamedCastExpr(E);
11499 return getDerived().TransformCXXNamedCastExpr(E);
11506 return getDerived().TransformCXXNamedCastExpr(E);
11512 return getDerived().TransformCXXNamedCastExpr(E);
11518 return getDerived().TransformCXXNamedCastExpr(E);
11526 getDerived().TransformTypeWithDeducedTST(E->getTypeInfoAsWritten());
11531 = getDerived().TransformExpr(E->getSubExprAsWritten());
11535 if (!getDerived
11540 return getDerived().RebuildCXXFunctionalCastExpr(Type,
11552 = getDerived().TransformType(E->getTypeOperandSourceInfo());
11556 if (!getDerived().AlwaysRebuild() &&
11560 return getDerived().RebuildCXXTypeidExpr(E->getType(), E->getBeginLoc(),
11572 ExprResult SubExpr = getDerived().TransformExpr(E->getExprOperand());
11576 if (!getDerived().AlwaysRebuild() &&
11580 return getDerived().RebuildCXXTypeidExpr(E->getType(), E->getBeginLoc(),
11589 = getDerived().TransformType(E->getTypeOperandSourceInfo());
11593 if (!getDerived().AlwaysRebuild() &&
11597 return getDerived().RebuildCXXUuidofExpr(E->getType(), E->getBeginLoc(),
11604 ExprResult SubExpr = getDerived().TransformExpr(E->getExprOperand());
11608 if (!getDerived().AlwaysRebuild() &&
11612 return getDerived().RebuildCXXUuidofExpr(E->getType(), E->getBeginLoc(),
11634 if (!getDerived().AlwaysRebuild() && T == E->getType()) {
11641 return getDerived().RebuildCXXThisExpr(E->getBeginLoc(), T, E->isImplicit());
11647 ExprResult SubExpr = getDerived().TransformExpr(E->getSubExpr());
11651 if (!getDerived().AlwaysRebuild() &&
11655 return getDerived().RebuildCXXThrowExpr(E->getThrowLoc(), SubExpr.get(),
11663 getDerived().TransformDecl(E->getBeginLoc(), E->getParam()));
11667 if (!getDerived().AlwaysRebuild() && Param == E->getParam() &&
11671 return getDerived().RebuildCXXDefaultArgExpr(E->getUsedLocation(), Param);
11678 getDerived().TransformDecl(E->getBeginLoc(), E->getField()));
11682 if (!getDerived().AlwaysRebuild() && Field == E->getField() &&
11686 return getDerived().RebuildCXXDefaultInitExpr(E->getExprLoc(), Field);
11693 TypeSourceInfo *T = getDerived().TransformType(E->getTypeSourceInfo());
11697 if (!getDerived().AlwaysRebuild() &&
11701 return getDerived().RebuildCXXScalarValueInitExpr(T,
11711 getDerived().TransformTypeWithDeducedTST(E->getAllocatedTypeSourceInfo());
11720 NewArraySize = getDerived().TransformExpr(*OldArraySize);
11730 if (getDerived().TransformExprs(E->getPlacementArgs(),
11739 NewInit = getDerived().TransformInitializer(OldInit, true);
11747 getDerived().TransformDecl(E->getBeginLoc(), E->getOperatorNew()));
11755 getDerived().TransformDecl(E->getBeginLoc(), E->getOperatorDelete()));
11760 if (!getDerived().AlwaysRebuild() &&
11813 return getDerived().RebuildCXXNewExpr(
11823 ExprResult Operand = getDerived().TransformExpr(E->getArgument());
11831 getDerived().TransformDecl(E->getBeginLoc(), E->getOperatorDelete()));
11836 if (!getDerived().AlwaysRebuild() &&
11857 return getDerived().RebuildCXXDeleteExpr(
11865 ExprResult Base = getDerived().TransformExpr(E->getBase());
11883 = getDerived().TransformNestedNameSpecifierLoc(QualifierLoc, ObjectType);
11893 = getDerived().TransformTypeInObjectScope(E->getDestroyedTypeInfo(),
11922 ScopeTypeInfo = getDerived().TransformTypeInObjectScope(
11928 return getDerived().RebuildCXXPseudoDestructorExpr(Base.get(),
11945 Decl *InstD = getDerived().TransformDecl(Old->getNameLoc(), OldD);
12009 = getDerived().TransformNestedNameSpecifierLoc(Old->getQualifierLoc());
12018 = cast_or_null<CXXRecordDecl>(getDerived().TransformDecl(
12044 return getDerived().RebuildDeclarationNameExpr(SS, R, Old->requiresADL());
12051 getDerived().TransformTemplateArguments(Old->getTemplateArgs(),
12058 return getDerived().RebuildTemplateIdExpr(SS, TemplateKWLoc, R,
12073 QualType To = getDerived().TransformType(TLB, FromTL);
12101 if (getDerived().TryExpandParameterPacks(ExpansionTL.getEllipsisLoc(),
12117 QualType To = getDerived().TransformType(TLB, PatternTL);
12121 To = getDerived().RebuildPackExpansionType(To,
12141 QualType To = getDerived().TransformType(TLB, PatternTL);
12146 To = getDerived().RebuildPackExpansionType(To,
12166 ForgetPartiallySubstitutedPackRAII Forget(getDerived());
12171 QualType To = getDerived().TransformType(TLB, PatternTL);
12175 To = getDerived().RebuildPackExpansionType(To,
12188 if (!getDerived().AlwaysRebuild() && !ArgChanged)
12191 return getDerived().RebuildTypeTrait(E->getTrait(), E->getBeginLoc(), Args,
12201 if (getDerived().TransformTemplateArguments(Old->getTemplateArgs(),
12205 return getDerived().RebuildConceptSpecializationExpr(
12229 if (getDerived().TransformFunctionTypeParams(E->getRequiresKWLoc(),
12241 if (getDerived().TransformRequiresExprRequirements(E->getRequirements(),
12255 return getDerived().RebuildRequiresExpr(E->getRequiresKWLoc(), Body,
12267 TransReq = getDerived().TransformTypeRequirement(TypeReq);
12269 TransReq = getDerived().TransformExprRequirement(ExprReq);
12271 TransReq = getDerived().TransformNestedRequirement(
12285 if (getDerived().AlwaysRebuild())
12286 return getDerived().RebuildTypeRequirement(
12290 TypeSourceInfo *TransType = getDerived().TransformType(Req->getType());
12293 return getDerived().RebuildTypeRequirement(TransType);
12303 ExprResult TransExprRes = getDerived().TransformExpr(Req->getExpr());
12319 getDerived().TransformTemplateParameterList(OrigTPL);
12327 return getDerived().RebuildExprRequirement(E, Req->isSimple(),
12330 return getDerived().RebuildExprRequirement(
12340 if (getDerived().AlwaysRebuild())
12341 return getDerived().RebuildNestedRequirement(
12346 getDerived().TransformExpr(Req->getConstraintExpr());
12349 return getDerived().RebuildNestedRequirement(TransConstraint.get());
12355 TypeSourceInfo *T = getDerived().TransformType(E->getQueriedTypeSourceInfo());
12359 if (!getDerived().AlwaysRebuild() &&
12367 SubExpr = getDerived().TransformExpr(E->getDimensionExpression());
12371 if (!getDerived().AlwaysRebuild() && SubExpr.get() == E->getDimensionExpression())
12375 return getDerived().RebuildArrayTypeTrait(E->getTrait(), E->getBeginLoc(), T,
12386 SubExpr = getDerived().TransformExpr(E->getQueriedExpression());
12390 if (!getDerived().AlwaysRebuild() && SubExpr.get() == E->getQueriedExpression())
12394 return getDerived().RebuildExpressionTrait(E->getTrait(), E->getBeginLoc(),
12402 ExprResult NewDRE = getDerived().TransformDependentScopeDeclRefExpr(
12410 if (!getDerived().AlwaysRebuild() && NewDRE.get() == DRE)
12412 return getDerived().RebuildParenExpr(NewDRE.get(), PE->getLParen(),
12431 = getDerived().TransformNestedNameSpecifierLoc(E->getQualifierLoc());
12441 = getDerived().TransformDeclarationNameInfo(E->getNameInfo());
12446 if (!getDerived().AlwaysRebuild() &&
12453 return getDerived().RebuildDependentScopeDeclRefExpr(
12459 if (getDerived().TransformTemplateArguments(E->getTemplateArgs(),
12464 return getDerived().RebuildDependentScopeDeclRefExpr(
12475 if (getDerived().AllowSkippingCXXConstructExpr() &&
12477 (E->getNumArgs() > 1 && getDerived().DropCallArgument(E->getArg(1)))) &&
12478 (!getDerived().DropCallArgument(E->getArg(0))) &&
12480 return getDerived().TransformInitializer(E->getArg(0),
12485 QualType T = getDerived().TransformType(E->getType());
12490 getDerived().TransformDecl(E->getBeginLoc(), E->getConstructor()));
12500 if (getDerived().TransformExprs(E->getArgs(), E->getNumArgs(), true, Args,
12505 if (!getDerived().AlwaysRebuild() &&
12515 return getDerived().RebuildCXXConstructExpr(
12525 QualType T = getDerived().TransformType(E->getType());
12530 getDerived().TransformDecl(E->getBeginLoc(), E->getConstructor()));
12534 if (!getDerived().AlwaysRebuild() &&
12543 return getDerived().RebuildCXXInheritedCtorInitExpr(
12555 return getDerived().TransformExpr(E->getSubExpr());
12566 return getDerived().TransformExpr(E->getSubExpr());
12574 getDerived().TransformTypeWithDeducedTST(E->getTypeSourceInfo());
12579 getDerived().TransformDecl(E->getBeginLoc(), E->getConstructor()));
12595 if (!getDerived().AlwaysRebuild() &&
12607 return getDerived().RebuildCXXTemporaryObjectExpr(
12637 ExprResult NewExprInitResult = getDerived().TransformInitializer(
12671 if (getDerived().TryExpandParameterPacks(
12683 ForgetPartiallySubstitutedPackRAII Forget(getDerived());
12697 auto TPL = getDerived().TransformTemplateParameterList(
12731 NewTrailingRequiresClause = getDerived().TransformExpr(TRC);
12742 getDerived().transformedLocalDecl(OldClass, {Class});
12745 if (getDerived().ReplacingOriginal())
12761 getDerived().transformAttrs(E->getCallOperator(), NewCallOperator);
12762 getDerived().transformedLocalDecl(E->getCallOperator(), {NewCallOperator});
12831 getDerived
12849 if (getDerived().TryExpandParameterPacks(C->getEllipsisLoc(),
12866 = cast_or_null<VarDecl>(getDerived().TransformDecl(C->getLocation(),
12887 = cast_or_null<VarDecl>(getDerived().TransformDecl(C->getLocation(),
12907 Invalid ? StmtError() : getDerived().TransformLambdaBody(E, E->getBody());
12966 getDerived().TransformDecl(C->getLocation(), C->getCapturedVar()));
12982 getDerived().TransformTypeWithDeducedTST(E->getTypeSourceInfo());
12993 if (getDerived().TransformExprs(E->arg_begin(), E->getNumArgs(), true, Args,
12998 if (!getDerived().AlwaysRebuild() &&
13004 return getDerived().RebuildCXXUnresolvedConstructExpr(
13019 Base = getDerived().TransformExpr(OldBase);
13038 BaseType = getDerived().TransformType(E->getBaseType());
13045 = getDerived().TransformFirstQualifierInScope(
13052 = getDerived().TransformNestedNameSpecifierLoc(E->getQualifierLoc(),
13066 = getDerived().TransformDeclarationNameInfo(E->getMemberNameInfo());
13073 if (!getDerived().AlwaysRebuild() &&
13081 return getDerived().RebuildCXXDependentScopeMemberExpr(Base.get(),
13093 if (getDerived().TransformTemplateArguments(E->getTemplateArgs(),
13098 return getDerived().RebuildCXXDependentScopeMemberExpr(Base.get(),
13116 Base = getDerived().TransformExpr(Old->getBase());
13125 BaseType = getDerived().TransformType(Old->getBaseType());
13131 = getDerived().TransformNestedNameSpecifierLoc(Old->getQualifierLoc());
13148 = cast_or_null<CXXRecordDecl>(getDerived().TransformDecl(
13161 if (getDerived().TransformTemplateArguments(Old->getTemplateArgs(),
13173 return getDerived().RebuildUnresolvedMemberExpr(Base.get(),
13190 ExprResult SubExpr = getDerived().TransformExpr(E->getOperand());
13194 if (!getDerived().AlwaysRebuild() && SubExpr.get() == E->getOperand())
13197 return getDerived().RebuildCXXNoexceptExpr(E->getSourceRange(),SubExpr.get());
13203 ExprResult Pattern = getDerived().TransformExpr(E->getPattern());
13207 if (!getDerived().AlwaysRebuild() && Pattern.get() == E->getPattern())
13210 return getDerived().RebuildPackExpansion(Pattern.get(), E->getEllipsisLoc(),
13236 if (getDerived().TryExpandParameterPacks(E->getOperatorLoc(), E->getPackLoc(),
13269 getDerived().TransformDecl(E->getPackLoc(), E->getPack()));
13272 return getDerived().RebuildSizeOfPackExpr(E->getOperatorLoc(), Pack,
13298 if (getDerived().TransformTemplateArgument(Pattern, OutPattern,
13318 return getDerived().RebuildSizeOfPackExpr(E->getOperatorLoc(), E->getPack(),
13345 return getDerived().RebuildSizeOfPackExpr(E->getOperatorLoc(), E->getPack(),
13349 return getDerived().RebuildSizeOfPackExpr(E->getOperatorLoc(), E->getPack(),
13381 return getDerived().TransformExpr(E->getSubExpr());
13389 ExprResult CalleeResult = getDerived().TransformExpr(OldCallee);
13407 if (getDerived().TryExpandParameterPacks(E->getEllipsisLoc(),
13420 E->getLHS() ? getDerived().TransformExpr(E->getLHS()) : ExprResult();
13425 E->getRHS() ? getDerived().TransformExpr(E->getRHS()) : ExprResult();
13429 if (!getDerived().AlwaysRebuild() &&
13433 return getDerived().RebuildCXXFoldExpr(
13452 ExprResult Result = getDerived().TransformExpr(E->getInit());
13460 ForgetPartiallySubstitutedPackRAII Forget(getDerived());
13462 ExprResult Out = getDerived().TransformExpr(Pattern);
13466 Result = getDerived().RebuildCXXFoldExpr(
13476 ExprResult Out = getDerived().TransformExpr(Pattern);
13482 Result = getDerived().RebuildCXXFoldExpr(
13492 Result = getDerived().RebuildCXXOperatorCallExpr(
13496 Result = getDerived().RebuildBinaryOperator(E->getEllipsisLoc(),
13508 ForgetPartiallySubstitutedPackRAII Forget(getDerived());
13510 ExprResult Out = getDerived().TransformExpr(Pattern);
13514 Result = getDerived().RebuildCXXFoldExpr(
13524 return getDerived().RebuildEmptyCXXFoldExpr(E->getEllipsisLoc(),
13534 return getDerived().TransformExpr(E->getSubExpr());
13552 ExprResult SubExpr = getDerived().TransformExpr(E->getSubExpr());
13556 if (!getDerived().AlwaysRebuild() &&
13560 return getDerived().RebuildObjCBoxedExpr(E->getSourceRange(), SubExpr.get());
13569 if (getDerived().TransformExprs(E->getElements(), E->getNumElements(),
13573 if (!getDerived().AlwaysRebuild() && !ArgChanged)
13576 return getDerived().RebuildObjCArrayLiteral(E->getSourceRange(),
13606 if (getDerived().TryExpandParameterPacks(OrigElement.EllipsisLoc,
13616 ExprResult Key = getDerived().TransformExpr(OrigElement.Key);
13623 ExprResult Value = getDerived().TransformExpr(OrigElement.Value);
13645 ExprResult Key = getDerived().TransformExpr(OrigElement.Key);
13649 ExprResult Value = getDerived().TransformExpr(OrigElement.Value);
13674 ExprResult Key = getDerived().TransformExpr(OrigElement.Key);
13683 = getDerived().TransformExpr(OrigElement.Value);
13696 if (!getDerived().AlwaysRebuild() && !ArgChanged)
13699 return getDerived
13707 = getDerived().TransformType(E->getEncodedTypeSourceInfo());
13711 if (!getDerived().AlwaysRebuild() &&
13715 return getDerived().RebuildObjCEncodeExpr(E->getAtLoc(),
13727 return getDerived().TransformExpr(E->getSubExpr());
13734 = getDerived().TransformType(E->getTypeInfoAsWritten());
13738 ExprResult Result = getDerived().TransformExpr(E->getSubExpr());
13742 if (!getDerived().AlwaysRebuild() &&
13765 if (getDerived().TransformExprs(E->getArgs(), E->getNumArgs(), false, Args,
13772 = getDerived().TransformType(E->getClassReceiverTypeInfo());
13777 if (!getDerived().AlwaysRebuild() &&
13784 return getDerived().RebuildObjCMessageExpr(ReceiverTypeInfo,
13800 return getDerived().RebuildObjCMessageExpr(E->getSuperLoc(),
13814 = getDerived().TransformExpr(E->getInstanceReceiver());
13819 if (!getDerived().AlwaysRebuild() &&
13826 return getDerived().RebuildObjCMessageExpr(Receiver.get(),
13851 ExprResult Base = getDerived().TransformExpr(E->getBase());
13858 if (!getDerived().AlwaysRebuild() &&
13862 return getDerived().RebuildObjCIvarRefExpr(Base.get(), E->getDecl(),
13876 ExprResult Base = getDerived().TransformExpr(E->getBase());
13883 if (!getDerived().AlwaysRebuild() &&
13888 return getDerived().RebuildObjCPropertyRefExpr(Base.get(),
13892 return getDerived().RebuildObjCPropertyRefExpr(Base.get(),
13903 ExprResult Base = getDerived().TransformExpr(E->getBaseExpr());
13908 ExprResult Key = getDerived().TransformExpr(E->getKeyExpr());
13913 if (!getDerived().AlwaysRebuild() &&
13917 return getDerived().RebuildObjCSubscriptRefExpr(E->getRBracket(),
13927 ExprResult Base = getDerived().TransformExpr(E->getBase());
13932 if (!getDerived().AlwaysRebuild() &&
13936 return getDerived().RebuildObjCIsaExpr(Base.get(), E->getIsaMemberLoc(),
13947 if (getDerived().TransformExprs(E->getSubExprs(), E->getNumSubExprs(), false,
13951 if (!getDerived().AlwaysRebuild() &&
13955 return getDerived().RebuildShuffleVectorExpr(E->getBuiltinLoc(),
13963 ExprResult SrcExpr = getDerived().TransformExpr(E->getSrcExpr());
13967 TypeSourceInfo *Type = getDerived().TransformType(E->getTypeSourceInfo());
13971 if (!getDerived().AlwaysRebuild() &&
13976 return getDerived().RebuildConvertVectorExpr(E->getBuiltinLoc(),
14000 if (getDerived().TransformFunctionTypeParams(
14009 getDerived().TransformType(exprFunctionType->getReturnType());
14015 getDerived().RebuildFunctionProtoType(exprResultType, paramTypes, epi);
14028 StmtResult body = getDerived().TransformStmt(E->getBody());
14046 cast<VarDecl>(getDerived().TransformDecl(E->getCaretLocation(),
14061 ExprResult SrcExpr = getDerived().TransformExpr(E->getSrcExpr());
14065 QualType Type = getDerived().TransformType(E->getType());
14077 if (getDerived().TransformExprs(E->getSubExprs(), E->getNumSubExprs(), false,
14081 if (!getDerived().AlwaysRebuild() &&
14085 return getDerived().RebuildAtomicExpr(E->getBuiltinLoc(), SubExprs,
14097 getDerived().getBaseEntity());
14104 getDerived().getBaseEntity());
14113 Sigil, getDerived().getBaseEntity());
14122 getDerived().getBaseEntity());
14174 getDerived().getBaseEntity());
14196 getDerived().getBaseEntity());
14207 return getDerived().RebuildArrayType(ElementType, SizeMod, &Size, SizeExpr,
14217 return getDerived().RebuildArrayType(ElementType, SizeMod, nullptr, nullptr,
14228 return getDerived().RebuildArrayType(ElementType, SizeMod, nullptr,
14240 return getDerived().RebuildArrayType(ElementType, SizeMod, nullptr,
14309 getDerived().getBaseLocation(),
14310 getDerived().getBaseEntity(),
14668 getDerived().TransformType(CD->getParam(I)->getType())));
14678 Body = getDerived().TransformStmt(S->getCapturedStmt());