Lines Matching defs:getDerived

125   Derived &getDerived() { return static_cast<Derived&>(*this); }
128 const Derived &getDerived() const {
182 OldLocation = Self.getDerived().getBaseLocation();
183 OldEntity = Self.getDerived().getBaseEntity();
186 Self.getDerived().setBase(Location, Entity);
190 Self.getDerived().setBase(OldLocation, OldEntity);
435 return getDerived().TransformDecl(Loc, D);
448 return cast_or_null<NamedDecl>(getDerived().TransformDecl(Loc, D));
558 getDerived().getBaseLocation());
885 = getDerived().RebuildTemplateName(SS, *Name, NameLoc, QualType(),
901 getDerived().RebuildTemplateSpecializationType(InstName, NameLoc, Args);
2108 return getDerived().RebuildCXXStaticCastExpr(OpLoc, LAngleLoc, TInfo,
2113 return getDerived().RebuildCXXDynamicCastExpr(OpLoc, LAngleLoc, TInfo,
2118 return getDerived().RebuildCXXReinterpretCastExpr(OpLoc, LAngleLoc, TInfo,
2124 return getDerived().RebuildCXXConstCastExpr(OpLoc, LAngleLoc, TInfo,
2880 case Stmt::Node##Class: return getDerived().Transform##Node(cast<Node>(S));
2891 ExprResult E = getDerived().TransformExpr(cast<Expr>(S));
2912 return getDerived().Transform ## Class(cast<Class>(S));
2930 case Stmt::Node##Class: return getDerived().Transform##Node(cast<Node>(E));
2966 return getDerived().TransformExpr(Init);
2971 return getDerived().RebuildParenListExpr(Parens.getBegin(), None,
2977 return getDerived().RebuildParenListExpr(SourceLocation(), None,
2983 return getDerived().TransformExpr(Init);
2992 if (getDerived().TransformExprs(Construct->getArgs(), Construct->getNumArgs(),
2998 return getDerived().RebuildInitList(Construct->getLocStart(), NewArgs,
3011 return getDerived().RebuildParenListExpr(Parens.getBegin(), NewArgs,
3023 if (IsCall && getDerived().DropCallArgument(Inputs[I])) {
3043 if (getDerived().TryExpandParameterPacks(Expansion->getEllipsisLoc(),
3055 ExprResult OutPattern = getDerived().TransformExpr(Pattern);
3059 ExprResult Out = getDerived().RebuildPackExpansion(OutPattern.get(),
3079 ExprResult Out = getDerived().TransformExpr(Pattern);
3086 Out = getDerived().RebuildPackExpansion(
3098 ForgetPartiallySubstitutedPackRAII Forget(getDerived());
3100 ExprResult Out = getDerived().TransformExpr(Pattern);
3104 Out = getDerived().RebuildPackExpansion(
3116 IsCall ? getDerived().TransformInitializer(Inputs[I], /*DirectInit*/false)
3117 : getDerived().TransformExpr(Inputs[I]);
3161 getDerived().TransformDecl(
3171 getDerived().TransformDecl(Q.getLocalBeginLoc(),
3186 cast_or_null<CXXRecordDecl>(getDerived().TransformDecl(
3230 !getDerived().AlwaysRebuild())
3267 NewTInfo = getDerived().TransformType(OldTInfo);
3275 QualType NewT = getDerived().TransformType(Name.getCXXNameType());
3306 = cast_or_null<TemplateDecl>(getDerived().TransformDecl(NameLoc,
3311 if (!getDerived().AlwaysRebuild() &&
3316 return getDerived().RebuildTemplateName(SS, QTN->hasTemplateKeyword(),
3327 if (!getDerived().AlwaysRebuild() &&
3333 return getDerived().RebuildTemplateName(SS,
3340 return getDerived().RebuildTemplateName(SS, DTN->getOperator(), NameLoc,
3346 = cast_or_null<TemplateDecl>(getDerived().TransformDecl(NameLoc,
3351 if (!getDerived().AlwaysRebuild() &&
3362 getDerived().TransformDecl(NameLoc, SubstPack->getParameterPack()));
3366 if (!getDerived().AlwaysRebuild() &&
3370 return getDerived().RebuildTemplateName(TransParam,
3382 SourceLocation Loc = getDerived().getBaseLocation();
3446 DI = getDerived().TransformType(DI);
3456 QualifierLoc = getDerived().TransformNestedNameSpecifierLoc(QualifierLoc);
3464 = getDerived().TransformTemplateName(SS, Arg.getAsTemplate(),
3485 ExprResult E = getDerived().TransformExpr(InputExpr);
3602 if (getDerived().TryExpandParameterPacks(Ellipsis,
3616 if (getDerived().TransformTemplateArgument(Pattern, OutPattern))
3619 Out = getDerived().RebuildPackExpansion(OutPattern, Ellipsis,
3633 if (getDerived().TransformTemplateArgument(Pattern, Out))
3637 Out = getDerived().RebuildPackExpansion(Out, Ellipsis,
3649 ForgetPartiallySubstitutedPackRAII Forget(getDerived());
3651 if (getDerived().TransformTemplateArgument(Pattern, Out))
3654 Out = getDerived().RebuildPackExpansion(Out, Ellipsis,
3666 if (getDerived().TransformTemplateArgument(In, Out))
3682 if (getDerived().AlreadyTransformed(T))
3688 getDerived().getBaseLocation());
3690 TypeSourceInfo *NewDI = getDerived().TransformType(DI);
3702 getDerived().getBaseEntity());
3703 if (getDerived().AlreadyTransformed(DI->getType()))
3711 QualType Result = getDerived().TransformType(TLB, TL);
3725 return getDerived().Transform##CLASS##Type(TLB, \
3744 QualType Result = getDerived().TransformType(TLB, T.getUnqualifiedLoc());
3814 if (getDerived().AlreadyTransformed(TL.getType()))
3830 if (getDerived().AlreadyTransformed(TSInfo->getType()))
3842 assert(!getDerived().AlreadyTransformed(T));
3852 = getDerived().TransformTemplateName(SS,
3859 Result = getDerived().TransformTemplateSpecializationType(TLB, SpecTL,
3866 = getDerived().RebuildTemplateName(SS,
3873 Result = getDerived().TransformDependentTemplateSpecializationType(TLB,
3879 Result = getDerived().TransformType(TLB, TL);
3916 return getDerived().TransformType(TLB, TL.getOriginalLoc());
3922 QualType OriginalType = getDerived().TransformType(TLB, TL.getOriginalLoc());
3927 if (getDerived().AlwaysRebuild() ||
3939 = getDerived().TransformType(TLB, TL.getPointeeLoc());
3956 if (getDerived().AlwaysRebuild() ||
3958 Result = getDerived().RebuildPointerType(PointeeType, TL.getSigilLoc());
3977 = getDerived().TransformType(TLB, TL.getPointeeLoc());
3982 if (getDerived().AlwaysRebuild() ||
3984 Result = getDerived().RebuildBlockPointerType(PointeeType,
4006 QualType PointeeType = getDerived().TransformType(TLB, TL.getPointeeLoc());
4011 if (getDerived().AlwaysRebuild() ||
4013 Result = getDerived().RebuildReferenceType(PointeeType,
4054 QualType PointeeType = getDerived().TransformType(TLB, TL.getPointeeLoc());
4061 NewClsTInfo = getDerived().TransformType(OldClsTInfo);
4072 NewClsType = getDerived().TransformType(OldClsType);
4078 if (getDerived().AlwaysRebuild() ||
4081 Result = getDerived().RebuildMemberPointerType(PointeeType, NewClsType,
4107 QualType ElementType = getDerived().TransformType(TLB, TL.getElementLoc());
4112 if (getDerived().AlwaysRebuild() ||
4114 Result = getDerived().RebuildConstantArrayType(ElementType,
4135 Size = getDerived().TransformExpr(Size).template getAs<Expr>();
4148 QualType ElementType = getDerived().TransformType(TLB, TL.getElementLoc());
4153 if (getDerived().AlwaysRebuild() ||
4155 Result = getDerived().RebuildIncompleteArrayType(ElementType,
4176 QualType ElementType = getDerived().TransformType(TLB, TL.getElementLoc());
4181 = getDerived().TransformExpr(T->getSizeExpr());
4188 if (getDerived().AlwaysRebuild() ||
4191 Result = getDerived().RebuildVariableArrayType(ElementType,
4215 QualType ElementType = getDerived().TransformType(TLB, TL.getElementLoc());
4228 = getDerived().TransformExpr(origSize);
4236 if (getDerived().AlwaysRebuild() ||
4239 Result = getDerived().RebuildDependentSizedArrayType(ElementType,
4265 QualType ElementType = getDerived().TransformType(T->getElementType());
4273 ExprResult Size = getDerived().TransformExpr(T->getSizeExpr());
4279 if (getDerived().AlwaysRebuild() ||
4282 Result = getDerived().RebuildDependentSizedExtVectorType(ElementType,
4306 QualType ElementType = getDerived().TransformType(T->getElementType());
4311 if (getDerived().AlwaysRebuild() ||
4313 Result = getDerived().RebuildVectorType(ElementType, T->getNumElements(),
4329 QualType ElementType = getDerived().TransformType(T->getElementType());
4334 if (getDerived().AlwaysRebuild() ||
4336 Result = getDerived().RebuildExtVectorType(ElementType,
4366 QualType Result = getDerived().TransformType(TLB,
4383 NewDI = getDerived().TransformType(OldDI);
4436 if (getDerived().TryExpandParameterPacks(ExpansionTL.getEllipsisLoc(),
4448 getDerived().ExpandingFunctionParameterPack(OldParm);
4452 = getDerived().TransformFunctionTypeParam(OldParm,
4467 ForgetPartiallySubstitutedPackRAII Forget(getDerived());
4469 = getDerived().TransformFunctionTypeParam(OldParm,
4494 NewParm = getDerived().TransformFunctionTypeParam(OldParm,
4499 NewParm = getDerived().TransformFunctionTypeParam(
4528 if (getDerived().TryExpandParameterPacks(Loc, SourceRange(),
4541 QualType NewType = getDerived().TransformType(Pattern);
4557 ForgetPartiallySubstitutedPackRAII Forget(getDerived());
4558 QualType NewType = getDerived().TransformType(Pattern);
4572 NewType = getDerived().TransformType(OldType);
4574 NewType = getDerived().TransformType(OldType);
4606 return getDerived().TransformFunctionProtoType(
4632 if (getDerived().TransformFunctionTypeParams(
4646 ResultType = getDerived().TransformType(TLB, TL.getReturnLoc());
4652 ResultType = getDerived().TransformType(TLB, TL.getReturnLoc());
4656 if (getDerived().TransformFunctionTypeParams(
4672 if (getDerived().AlwaysRebuild() || ResultType != T->getReturnType() ||
4676 Result = getDerived().RebuildFunctionProtoType(ResultType, ParamTypes, EPI);
4702 ExprResult NoexceptExpr = getDerived().TransformExpr(ESI.NoexceptExpr);
4748 if (getDerived().TryExpandParameterPacks(
4758 QualType U = getDerived().TransformType(PackExpansion->getPattern());
4772 QualType U = getDerived().TransformType(PackExpansion->getPattern());
4779 QualType U = getDerived().TransformType(T);
4798 QualType ResultType = getDerived().TransformType(TLB, TL.getReturnLoc());
4803 if (getDerived().AlwaysRebuild() || ResultType != T->getReturnType())
4804 Result = getDerived().RebuildFunctionNoProtoType(ResultType);
4819 Decl *D = getDerived().TransformDecl(TL.getNameLoc(), T->getDecl());
4824 if (getDerived().AlwaysRebuild() || D != T->getDecl()) {
4825 Result = getDerived().RebuildUnresolvedUsingType(D);
4843 = cast_or_null<TypedefNameDecl>(getDerived().TransformDecl(TL.getNameLoc(),
4849 if (getDerived().AlwaysRebuild() ||
4851 Result = getDerived().RebuildTypedefType(Typedef);
4869 ExprResult E = getDerived().TransformExpr(TL.getUnderlyingExpr());
4878 if (getDerived().AlwaysRebuild() ||
4880 Result = getDerived().RebuildTypeOfExprType(E.get(), TL.getTypeofLoc());
4898 TypeSourceInfo* New_Under_TI = getDerived().TransformType(Old_Under_TI);
4903 if (getDerived().AlwaysRebuild() || New_Under_TI != Old_Under_TI) {
4904 Result = getDerived().RebuildTypeOfType(New_Under_TI->getType());
4927 ExprResult E = getDerived().TransformExpr(T->getUnderlyingExpr());
4936 if (getDerived().AlwaysRebuild() ||
4938 Result = getDerived().RebuildDecltypeType(E.get(), TL.getNameLoc());
4958 getDerived().TransformType(TL.getUnderlyingTInfo())->getType();
4959 Result = getDerived().RebuildUnaryTransformType(NewBase,
4980 NewDeduced = getDerived().TransformType(OldDeduced);
4986 if (getDerived().AlwaysRebuild() || NewDeduced != OldDeduced ||
4988 Result = getDerived().RebuildAutoType(NewDeduced, T->isDecltypeAuto());
5004 = cast_or_null<RecordDecl>(getDerived().TransformDecl(TL.getNameLoc(),
5010 if (getDerived().AlwaysRebuild() ||
5012 Result = getDerived().RebuildRecordType(Record);
5028 = cast_or_null<EnumDecl>(getDerived().TransformDecl(TL.getNameLoc(),
5034 if (getDerived().AlwaysRebuild() ||
5036 Result = getDerived().RebuildEnumType(Enum);
5051 Decl *D = getDerived().TransformDecl(TL.getNameLoc(),
5077 QualType Replacement = getDerived().TransformType(T->getReplacementType());
5112 = getDerived().TransformTemplateName(SS, T->getTemplateName(),
5117 return getDerived().TransformTemplateSpecializationType(TLB, TL, Template);
5123 QualType ValueType = getDerived().TransformType(TLB, TL.getValueLoc());
5128 if (getDerived().AlwaysRebuild() ||
5130 Result = getDerived().RebuildAtomicType(ValueType, TL.getKWLoc());
5218 if (getDerived().TransformTemplateArguments(ArgIterator(TL, 0),
5226 getDerived().RebuildTemplateSpecializationType(Template,
5273 if (getDerived().TransformTemplateArguments(ArgIterator(TL, 0),
5302 = getDerived().RebuildTemplateSpecializationType(Template,
5331 = getDerived().TransformNestedNameSpecifierLoc(TL.getQualifierLoc());
5336 QualType NamedT = getDerived().TransformType(TLB, TL.getNamedTypeLoc());
5358 if (getDerived().AlwaysRebuild() ||
5361 Result = getDerived().RebuildElaboratedType(TL.getElaboratedKeywordLoc(),
5379 QualType modifiedType = getDerived().TransformType(TLB, TL.getModifiedLoc());
5386 if (getDerived().AlwaysRebuild() ||
5391 = getDerived().TransformType(oldType->getEquivalentType());
5415 QualType Inner = getDerived().TransformType(TLB, TL.getInnerLoc());
5420 if (getDerived().AlwaysRebuild() ||
5422 Result = getDerived().RebuildParenType(Inner);
5439 = getDerived().TransformNestedNameSpecifierLoc(TL.getQualifierLoc());
5444 = getDerived().RebuildDependentNameType(T->getKeyword(),
5475 = getDerived().TransformNestedNameSpecifierLoc(TL.getQualifierLoc());
5480 return getDerived()
5497 if (getDerived().TransformTemplateArguments(ArgIterator(TL, 0),
5503 = getDerived().RebuildDependentTemplateSpecializationType(T->getKeyword(),
5556 = getDerived().TransformType(TLB, TL.getPatternLoc());
5561 if (getDerived().AlwaysRebuild() ||
5563 Result = getDerived().RebuildPackExpansionType(Pattern,
5615 return getDerived().TransformCompoundStmt(S, false);
5628 StmtResult Result = getDerived().TransformStmt(B);
5647 if (!getDerived().AlwaysRebuild() &&
5651 return getDerived().RebuildCompoundStmt(S->getLBracLoc(),
5666 LHS = getDerived().TransformExpr(S->getLHS());
5672 RHS = getDerived().TransformExpr(S->getRHS());
5681 StmtResult Case = getDerived().RebuildCaseStmt(S->getCaseLoc(),
5690 StmtResult SubStmt = getDerived().TransformStmt(S->getSubStmt());
5695 return getDerived().RebuildCaseStmtBody(Case.get(), SubStmt.get());
5702 StmtResult SubStmt = getDerived().TransformStmt(S->getSubStmt());
5707 return getDerived().RebuildDefaultStmt(S->getDefaultLoc(), S->getColonLoc(),
5714 StmtResult SubStmt = getDerived().TransformStmt(S->getSubStmt());
5718 Decl *LD = getDerived().TransformDecl(S->getDecl()->getLocation(),
5725 return getDerived().RebuildLabelStmt(S->getIdentLoc(),
5740 return getDerived().Transform##X##Attr(cast<X##Attr>(R));
5754 const Attr *R = getDerived().TransformAttr(I);
5759 StmtResult SubStmt = getDerived().TransformStmt(S->getSubStmt());
5766 return getDerived().RebuildAttributedStmt(S->getAttrLoc(), Attrs,
5779 getDerived().TransformDefinition(
5785 Cond = getDerived().TransformExpr(S->getCond());
5806 StmtResult Then = getDerived().TransformStmt(S->getThen());
5811 StmtResult Else = getDerived().TransformStmt(S->getElse());
5815 if (!getDerived().AlwaysRebuild() &&
5822 return getDerived().RebuildIfStmt(S->getIfLoc(), FullCond, ConditionVar,
5836 getDerived().TransformDefinition(
5842 Cond = getDerived().TransformExpr(S->getCond());
5850 = getDerived().RebuildSwitchStmtStart(S->getSwitchLoc(), Cond.get(),
5856 StmtResult Body = getDerived().TransformStmt(S->getBody());
5861 return getDerived().RebuildSwitchStmtBody(S->getSwitchLoc(), Switch.get(),
5874 getDerived().TransformDefinition(
5880 Cond = getDerived().TransformExpr(S->getCond());
5901 StmtResult Body = getDerived().TransformStmt(S->getBody());
5905 if (!getDerived().AlwaysRebuild() &&
5911 return getDerived().RebuildWhileStmt(S->getWhileLoc(), FullCond,
5919 StmtResult Body = getDerived().TransformStmt(S->getBody());
5924 ExprResult Cond = getDerived().TransformExpr(S->getCond());
5928 if (!getDerived().AlwaysRebuild() &&
5933 return getDerived().RebuildDoStmt(S->getDoLoc(), Body.get(), S->getWhileLoc(),
5942 StmtResult Init = getDerived().TransformStmt(S->getInit());
5952 getDerived().TransformDefinition(
5958 Cond = getDerived().TransformExpr(S->getCond());
5980 ExprResult Inc = getDerived().TransformExpr(S->getInc());
5989 StmtResult Body = getDerived().TransformStmt(S->getBody());
5993 if (!getDerived().AlwaysRebuild() &&
6000 return getDerived().RebuildForStmt(S->getForLoc(), S->getLParenLoc(),
6008 Decl *LD = getDerived().TransformDecl(S->getLabel()->getLocation(),
6014 return getDerived().RebuildGotoStmt(S->getGotoLoc(), S->getLabelLoc(),
6021 ExprResult Target = getDerived().TransformExpr(S->getTarget());
6026 if (!getDerived().AlwaysRebuild() &&
6030 return getDerived().RebuildIndirectGotoStmt(S->getGotoLoc(), S->getStarLoc(),
6049 ExprResult Result = getDerived().TransformInitializer(S->getRetValue(),
6056 return getDerived().RebuildReturnStmt(S->getReturnLoc(), Result.get());
6065 Decl *Transformed = getDerived().TransformDefinition(D->getLocation(), D);
6075 if (!getDerived().AlwaysRebuild() && !DeclChanged)
6078 return getDerived().RebuildDeclStmt(Decls, S->getStartLoc(), S->getEndLoc());
6103 ExprResult Result = getDerived().TransformExpr(OutputExpr);
6121 ExprResult Result = getDerived().TransformExpr(InputExpr);
6130 if (!getDerived().AlwaysRebuild() && !ExprsChanged)
6139 return getDerived().RebuildGCCAsmStmt(S->getAsmLoc(), S->isSimple(),
6158 ExprResult Result = getDerived().TransformExpr(SrcExprs[i]);
6168 if (!HadChange && !getDerived().AlwaysRebuild())
6171 return getDerived().RebuildMSAsmStmt(S->getAsmLoc(), S->getLBraceLoc(),
6182 StmtResult TryBody = getDerived().TransformStmt(S->getTryBody());
6190 StmtResult Catch = getDerived().TransformStmt(S->getCatchStmt(I));
6201 Finally = getDerived().TransformStmt(S->getFinallyStmt());
6207 if (!getDerived().AlwaysRebuild() &&
6214 return getDerived().RebuildObjCAtTryStmt(S->getAtTryLoc(), TryBody.get(),
6226 TSInfo = getDerived().TransformType(FromVar->getTypeSourceInfo());
6235 T = getDerived().TransformType(FromVar->getType());
6240 Var = getDerived().RebuildObjCExceptionDecl(FromVar, TSInfo, T);
6245 StmtResult Body = getDerived().TransformStmt(S->getCatchBody());
6249 return getDerived().RebuildObjCAtCatchStmt(S->getAtCatchLoc(),
6258 StmtResult Body = getDerived().TransformStmt(S->getFinallyBody());
6263 if (!getDerived().AlwaysRebuild() &&
6268 return getDerived().RebuildObjCAtFinallyStmt(S->getAtFinallyLoc(),
6277 Operand = getDerived().TransformExpr(S->getThrowExpr());
6282 if (!getDerived().AlwaysRebuild() &&
6286 return getDerived().RebuildObjCAtThrowStmt(S->getThrowLoc(), Operand.get());
6294 ExprResult Object = getDerived().TransformExpr(S->getSynchExpr());
6298 getDerived().RebuildObjCAtSynchronizedOperand(S->getAtSynchronizedLoc(),
6304 StmtResult Body = getDerived().TransformStmt(S->getSynchBody());
6309 if (!getDerived().AlwaysRebuild() &&
6315 return getDerived().RebuildObjCAtSynchronizedStmt(S->getAtSynchronizedLoc(),
6324 StmtResult Body = getDerived().TransformStmt(S->getSubStmt());
6329 if (!getDerived().AlwaysRebuild() &&
6334 return getDerived().RebuildObjCAutoreleasePoolStmt(
6343 StmtResult Element = getDerived().TransformStmt(S->getElement());
6348 ExprResult Collection = getDerived().TransformExpr(S->getCollection());
6353 StmtResult Body = getDerived().TransformStmt(S->getBody());
6358 if (!getDerived().AlwaysRebuild() &&
6365 return getDerived().RebuildObjCForCollectionStmt(S->getForLoc(),
6378 getDerived().TransformType(ExceptionDecl->getTypeSourceInfo());
6382 Var = getDerived().RebuildExceptionDecl(
6390 StmtResult Handler = getDerived().TransformStmt(S->getHandlerBlock());
6394 if (!getDerived().AlwaysRebuild() && !Var &&
6398 return getDerived().RebuildCXXCatchStmt(S->getCatchLoc(), Var, Handler.get());
6404 StmtResult TryBlock = getDerived().TransformCompoundStmt(S->getTryBlock());
6412 StmtResult Handler = getDerived().TransformCXXCatchStmt(S->getHandler(I));
6420 if (!getDerived().AlwaysRebuild() && TryBlock.get() == S->getTryBlock() &&
6424 return getDerived().RebuildCXXTryStmt(S->getTryLoc(), TryBlock.get(),
6431 StmtResult Range = getDerived().TransformStmt(S->getRangeStmt());
6435 StmtResult BeginEnd = getDerived().TransformStmt(S->getBeginEndStmt());
6439 ExprResult Cond = getDerived().TransformExpr(S->getCond());
6449 ExprResult Inc = getDerived().TransformExpr(S->getInc());
6455 StmtResult LoopVar = getDerived().TransformStmt(S->getLoopVarStmt());
6460 if (getDerived().AlwaysRebuild() ||
6466 NewStmt = getDerived().RebuildCXXForRangeStmt(S->getForLoc(),
6475 StmtResult Body = getDerived().TransformStmt(S->getBody());
6482 NewStmt = getDerived().RebuildCXXForRangeStmt(S->getForLoc(),
6505 = getDerived().TransformNestedNameSpecifierLoc(S->getQualifierLoc());
6513 NameInfo = getDerived().TransformDeclarationNameInfo(NameInfo);
6519 if (!getDerived().AlwaysRebuild() &&
6550 StmtResult SubStmt = getDerived().TransformCompoundStmt(S->getSubStmt());
6559 return getDerived().RebuildMSDependentExistsStmt(S->getKeywordLoc(),
6572 = getDerived().TransformNestedNameSpecifierLoc(E->getQualifierLoc());
6578 getDerived().TransformDecl(E->getMemberLoc(), E->getPropertyDecl()));
6582 ExprResult Base = getDerived().TransformExpr(E->getBaseExpr());
6594 StmtResult TryBlock = getDerived().TransformCompoundStmt(S->getTryBlock());
6598 StmtResult Handler = getDerived().TransformSEHHandler(S->getHandler());
6602 if (!getDerived().AlwaysRebuild() && TryBlock.get() == S->getTryBlock() &&
6606 return getDerived().RebuildSEHTryStmt(S->getIsCXXTry(), S->getTryLoc(),
6612 StmtResult Block = getDerived().TransformCompoundStmt(S->getBlock());
6616 return getDerived().RebuildSEHFinallyStmt(S->getFinallyLoc(), Block.get());
6621 ExprResult FilterExpr = getDerived().TransformExpr(S->getFilterExpr());
6625 StmtResult Block = getDerived().TransformCompoundStmt(S->getBlock());
6629 return getDerived().RebuildSEHExceptStmt(S->getExceptLoc(), FilterExpr.get(),
6636 return getDerived().TransformSEHFinallyStmt(cast<SEHFinallyStmt>(Handler));
6638 return getDerived().TransformSEHExceptStmt(cast<SEHExceptStmt>(Handler));
6661 OMPClause *Clause = getDerived().TransformOMPClause(*I);
6673 getDerived().getSema().ActOnOpenMPRegionStart(D->getDirectiveKind(),
6678 Body = getDerived().TransformStmt(
6682 getDerived().getSema().ActOnOpenMPRegionEnd(Body, TClauses);
6695 DirName = getDerived().TransformDeclarationNameInfo(DirName);
6698 return getDerived().RebuildOMPExecutableDirective(
6707 getDerived().getSema().StartOpenMPDSABlock(OMPD_parallel, DirName, nullptr,
6709 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
6710 getDerived().getSema().EndOpenMPDSABlock(Res.get());
6718 getDerived().getSema().StartOpenMPDSABlock(OMPD_simd, DirName, nullptr,
6720 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
6721 getDerived().getSema().EndOpenMPDSABlock(Res.get());
6729 getDerived().getSema().StartOpenMPDSABlock(OMPD_for, DirName, nullptr,
6731 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
6732 getDerived().getSema().EndOpenMPDSABlock(Res.get());
6740 getDerived().getSema().StartOpenMPDSABlock(OMPD_for_simd, DirName, nullptr,
6742 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
6743 getDerived().getSema().EndOpenMPDSABlock(Res.get());
6751 getDerived().getSema().StartOpenMPDSABlock(OMPD_sections, DirName, nullptr,
6753 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
6754 getDerived().getSema().EndOpenMPDSABlock(Res.get());
6762 getDerived().getSema().StartOpenMPDSABlock(OMPD_section, DirName, nullptr,
6764 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
6765 getDerived().getSema().EndOpenMPDSABlock(Res.get());
6773 getDerived().getSema().StartOpenMPDSABlock(OMPD_single, DirName, nullptr,
6775 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
6776 getDerived().getSema().EndOpenMPDSABlock(Res.get());
6784 getDerived().getSema().StartOpenMPDSABlock(OMPD_master, DirName, nullptr,
6786 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
6787 getDerived().getSema().EndOpenMPDSABlock(Res.get());
6794 getDerived().getSema().StartOpenMPDSABlock(
6796 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
6797 getDerived().getSema().EndOpenMPDSABlock(Res.get());
6805 getDerived().getSema().StartOpenMPDSABlock(OMPD_parallel_for, DirName,
6807 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
6808 getDerived().getSema().EndOpenMPDSABlock(Res.get());
6816 getDerived().getSema().StartOpenMPDSABlock(OMPD_parallel_for_simd, DirName,
6818 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
6819 getDerived().getSema().EndOpenMPDSABlock(Res.get());
6827 getDerived().getSema().StartOpenMPDSABlock(OMPD_parallel_sections, DirName,
6829 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
6830 getDerived().getSema().EndOpenMPDSABlock(Res.get());
6838 getDerived().getSema().StartOpenMPDSABlock(OMPD_task, DirName, nullptr,
6840 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
6841 getDerived().getSema().EndOpenMPDSABlock(Res.get());
6849 getDerived().getSema().StartOpenMPDSABlock(OMPD_taskyield, DirName, nullptr,
6851 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
6852 getDerived().getSema().EndOpenMPDSABlock(Res.get());
6860 getDerived().getSema().StartOpenMPDSABlock(OMPD_barrier, DirName, nullptr,
6862 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
6863 getDerived().getSema().EndOpenMPDSABlock(Res.get());
6871 getDerived().getSema().StartOpenMPDSABlock(OMPD_taskwait, DirName, nullptr,
6873 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
6874 getDerived().getSema().EndOpenMPDSABlock(Res.get());
6882 getDerived().getSema().StartOpenMPDSABlock(OMPD_flush, DirName, nullptr,
6884 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
6885 getDerived().getSema().EndOpenMPDSABlock(Res.get());
6893 getDerived().getSema().StartOpenMPDSABlock(OMPD_ordered, DirName, nullptr,
6895 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
6896 getDerived().getSema().EndOpenMPDSABlock(Res.get());
6904 getDerived().getSema().StartOpenMPDSABlock(OMPD_atomic, DirName, nullptr,
6906 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
6907 getDerived().getSema().EndOpenMPDSABlock(Res.get());
6915 getDerived().getSema().StartOpenMPDSABlock(OMPD_target, DirName, nullptr,
6917 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
6918 getDerived().getSema().EndOpenMPDSABlock(Res.get());
6926 getDerived().getSema().StartOpenMPDSABlock(OMPD_teams, DirName, nullptr,
6928 StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
6929 getDerived().getSema().EndOpenMPDSABlock(Res.get());
6938 ExprResult Cond = getDerived().TransformExpr(C->getCondition());
6941 return getDerived().RebuildOMPIfClause(Cond.get(), C->getLocStart(),
6947 ExprResult Cond = getDerived().TransformExpr(C->getCondition());
6950 return getDerived().RebuildOMPFinalClause(Cond.get(), C->getLocStart(),
6957 ExprResult NumThreads = getDerived().TransformExpr(C->getNumThreads());
6960 return getDerived().RebuildOMPNumThreadsClause(
6967 ExprResult E = getDerived().TransformExpr(C->getSafelen());
6970 return getDerived().RebuildOMPSafelenClause(
6977 ExprResult E = getDerived().TransformExpr(C->getNumForLoops());
6980 return getDerived().RebuildOMPCollapseClause(
6987 return getDerived().RebuildOMPDefaultClause(
6995 return getDerived().RebuildOMPProcBindClause(
7003 ExprResult E = getDerived().TransformExpr(C->getChunkSize());
7006 return getDerived().RebuildOMPScheduleClause(
7078 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
7083 return getDerived().RebuildOMPPrivateClause(
7093 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
7098 return getDerived().RebuildOMPFirstprivateClause(
7108 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
7113 return getDerived().RebuildOMPLastprivateClause(
7123 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
7128 return getDerived().RebuildOMPSharedClause(Vars, C->getLocStart(),
7138 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
7148 NameInfo = getDerived().TransformDeclarationNameInfo(NameInfo);
7152 return getDerived().RebuildOMPReductionClause(
7163 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
7168 ExprResult Step = getDerived().TransformExpr(C->getStep());
7171 return getDerived().RebuildOMPLinearClause(Vars, Step.get(), C->getLocStart(),
7182 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
7187 ExprResult Alignment = getDerived().TransformExpr(C->getAlignment());
7190 return getDerived().RebuildOMPAlignedClause(
7201 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
7206 return getDerived().RebuildOMPCopyinClause(Vars, C->getLocStart(),
7216 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
7221 return getDerived().RebuildOMPCopyprivateClause(
7230 ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
7235 return getDerived().RebuildOMPFlushClause(Vars, C->getLocStart(),
7248 return getDerived().RebuildPredefinedExpr(E->getLocation(),
7258 = getDerived().TransformNestedNameSpecifierLoc(E->getQualifierLoc());
7264 = cast_or_null<ValueDecl>(getDerived().TransformDecl(E->getLocation(),
7271 NameInfo = getDerived().TransformDeclarationNameInfo(NameInfo);
7276 if (!getDerived().AlwaysRebuild() &&
7294 if (getDerived().TransformTemplateArguments(E->getTemplateArgs(),
7300 return getDerived().RebuildDeclRefExpr(QualifierLoc, ND, NameInfo,
7346 getDerived().TransformExpr(E->getControllingExpr());
7355 TypeSourceInfo *AssocType = getDerived().TransformType(TS);
7363 ExprResult AssocExpr = getDerived().TransformExpr(E->getAssocExpr(i));
7369 return getDerived().RebuildGenericSelectionExpr(E->getGenericLoc(),
7380 ExprResult SubExpr = getDerived().TransformExpr(E->getSubExpr());
7384 if (!getDerived().AlwaysRebuild() && SubExpr.get() == E->getSubExpr())
7387 return getDerived().RebuildParenExpr(SubExpr.get(), E->getLParen(),
7398 return getDerived().TransformDependentScopeDeclRefExpr(DRE, true, nullptr);
7400 return getDerived().TransformExpr(E);
7414 if (!getDerived().AlwaysRebuild() && SubExpr.get() == E->getSubExpr())
7417 return getDerived().RebuildUnaryOperator(E->getOperatorLoc(),
7426 TypeSourceInfo *Type = getDerived().TransformType(E->getTypeSourceInfo());
7449 ExprResult Index = getDerived().TransformExpr(FromIndex);
7477 if (!getDerived().AlwaysRebuild() &&
7483 return getDerived().RebuildOffsetOfExpr(E->getOperatorLoc(), Type,
7491 assert(getDerived().AlreadyTransformed(E->getType()) &&
7512 ExprResult result = getDerived().TransformExpr(newSyntacticForm);
7531 TypeSourceInfo *NewT = getDerived().TransformType(OldT);
7535 if (!getDerived().AlwaysRebuild() && OldT == NewT)
7538 return getDerived().RebuildUnaryExprOrTypeTrait(NewT, E->getOperatorLoc(),
7556 SubExpr = getDerived().TransformParenDependentScopeDeclRefExpr(
7559 SubExpr = getDerived().TransformExpr(E->getArgumentExpr());
7562 return getDerived().RebuildUnaryExprOrTypeTrait(
7567 if (!getDerived().AlwaysRebuild() && SubExpr.get() == E->getArgumentExpr())
7570 return getDerived().RebuildUnaryExprOrTypeTrait(SubExpr.get(),
7579 ExprResult LHS = getDerived().TransformExpr(E->getLHS());
7583 ExprResult RHS = getDerived().TransformExpr(E->getRHS());
7588 if (!getDerived().AlwaysRebuild() &&
7593 return getDerived().RebuildArraySubscriptExpr(LHS.get(),
7603 ExprResult Callee = getDerived().TransformExpr(E->getCallee());
7610 if (getDerived().TransformExprs(E->getArgs(), E->getNumArgs(), true, Args,
7614 if (!getDerived().AlwaysRebuild() &&
7622 return getDerived().RebuildCallExpr(Callee.get(), FakeLParenLoc,
7630 ExprResult Base = getDerived().TransformExpr(E->getBase());
7637 = getDerived().TransformNestedNameSpecifierLoc(E->getQualifierLoc());
7645 = cast_or_null<ValueDecl>(getDerived().TransformDecl(E->getMemberLoc(),
7655 getDerived().TransformDecl(E->getMemberLoc(), FoundDecl));
7660 if (!getDerived().AlwaysRebuild() &&
7678 if (getDerived().TransformTemplateArguments(E->getTemplateArgs(),
7694 return getDerived().RebuildMemberExpr(Base.get(), FakeOperatorLoc,
7709 ExprResult LHS = getDerived().TransformExpr(E->getLHS());
7713 ExprResult RHS = getDerived().TransformExpr(E->getRHS());
7717 if (!getDerived().AlwaysRebuild() &&
7725 return getDerived().RebuildBinaryOperator(E->getOperatorLoc(), E->getOpcode(),
7733 return getDerived().TransformBinaryOperator(E);
7742 ExprResult commonExpr = getDerived().TransformExpr(e->getCommon());
7746 ExprResult rhs = getDerived().TransformExpr(e->getFalseExpr());
7750 if (!getDerived().AlwaysRebuild() &&
7755 return getDerived().RebuildConditionalOperator(commonExpr.get(),
7765 ExprResult Cond = getDerived().TransformExpr(E->getCond());
7769 ExprResult LHS = getDerived().TransformExpr(E->getLHS());
7773 ExprResult RHS = getDerived().TransformExpr(E->getRHS());
7777 if (!getDerived().AlwaysRebuild() &&
7783 return getDerived().RebuildConditionalOperator(Cond.get(),
7795 return getDerived().TransformExpr(E->getSubExprAsWritten());
7801 TypeSourceInfo *Type = getDerived().TransformType(E->getTypeInfoAsWritten());
7806 = getDerived().TransformExpr(E->getSubExprAsWritten());
7810 if (!getDerived().AlwaysRebuild() &&
7815 return getDerived().RebuildCStyleCastExpr(E->getLParenLoc(),
7825 TypeSourceInfo *NewT = getDerived().TransformType(OldT);
7829 ExprResult Init = getDerived().TransformExpr(E->getInitializer());
7833 if (!getDerived().AlwaysRebuild() &&
7842 return getDerived().RebuildCompoundLiteralExpr(E->getLParenLoc(), NewT,
7850 ExprResult Base = getDerived().TransformExpr(E->getBase());
7854 if (!getDerived().AlwaysRebuild() &&
7861 return getDerived().RebuildExtVectorElementExpr(Base.get(), FakeOperatorLoc,
7875 if (getDerived().TransformExprs(E->getInits(), E->getNumInits(), false,
7879 if (!getDerived().AlwaysRebuild() && !InitChanged) {
7886 return getDerived().RebuildInitList(E->getLBraceLoc(), Inits,
7896 ExprResult Init = getDerived().TransformExpr(E->getInit());
7914 ExprResult Index = getDerived().TransformExpr(E->getArrayIndex(*D));
7928 = getDerived().TransformExpr(E->getArrayRangeStart(*D));
7932 ExprResult End = getDerived().TransformExpr(E->getArrayRangeEnd(*D));
7948 if (!getDerived().AlwaysRebuild() &&
7953 return getDerived().RebuildDesignatedInitExpr(Desig, ArrayExprs,
7966 QualType T = getDerived().TransformType(E->getType());
7970 if (!getDerived().AlwaysRebuild() &&
7974 return getDerived().RebuildImplicitValueInitExpr(T);
7980 TypeSourceInfo *TInfo = getDerived().TransformType(E->getWrittenTypeInfo());
7984 ExprResult SubExpr = getDerived().TransformExpr(E->getSubExpr());
7988 if (!getDerived().AlwaysRebuild() &&
7993 return getDerived().RebuildVAArgExpr(E->getBuiltinLoc(), SubExpr.get(),
8006 return getDerived().RebuildParenListExpr(E->getLParenLoc(),
8019 Decl *LD = getDerived().TransformDecl(E->getLabel()->getLocation(),
8024 return getDerived().RebuildAddrLabelExpr(E->getAmpAmpLoc(), E->getLabelLoc(),
8033 = getDerived().TransformCompoundStmt(E->getSubStmt(), true);
8039 if (!getDerived().AlwaysRebuild() &&
8046 return getDerived().RebuildStmtExpr(E->getLParenLoc(),
8054 ExprResult Cond = getDerived().TransformExpr(E->getCond());
8058 ExprResult LHS = getDerived().TransformExpr(E->getLHS());
8062 ExprResult RHS = getDerived().TransformExpr(E->getRHS());
8066 if (!getDerived().AlwaysRebuild() &&
8072 return getDerived().RebuildChooseExpr(E->getBuiltinLoc(),
8098 ExprResult Object = getDerived().TransformExpr(E->getArg(0));
8108 if (getDerived().TransformExprs(E->getArgs() + 1, E->getNumArgs() - 1, true,
8112 return getDerived().RebuildCallExpr(Object.get(), FakeLParenLoc,
8133 ExprResult Callee = getDerived().TransformExpr(E->getCallee());
8139 First = getDerived().TransformAddressOfOperand(E->getArg(0));
8141 First = getDerived().TransformExpr(E->getArg(0));
8147 Second = getDerived().TransformExpr(E->getArg(1));
8152 if (!getDerived().AlwaysRebuild() &&
8161 return getDerived().RebuildCXXOperatorCallExpr(E->getOperator(),
8171 return getDerived().TransformCallExpr(E);
8178 ExprResult Callee = getDerived().TransformExpr(E->getCallee());
8183 ExprResult EC = getDerived().TransformCallExpr(E->getConfig());
8190 if (getDerived().TransformExprs(E->getArgs(), E->getNumArgs(), true, Args,
8194 if (!getDerived().AlwaysRebuild() &&
8202 return getDerived().RebuildCallExpr(Callee.get(), FakeLParenLoc,
8210 TypeSourceInfo *Type = getDerived().TransformType(E->getTypeInfoAsWritten());
8215 = getDerived().TransformExpr(E->getSubExprAsWritten());
8219 if (!getDerived().AlwaysRebuild() &&
8223 return getDerived().RebuildCXXNamedCastExpr(
8233 return getDerived().TransformCXXNamedCastExpr(E);
8239 return getDerived().TransformCXXNamedCastExpr(E);
8246 return getDerived().TransformCXXNamedCastExpr(E);
8252 return getDerived().TransformCXXNamedCastExpr(E);
8259 TypeSourceInfo *Type = getDerived().TransformType(E->getTypeInfoAsWritten());
8264 = getDerived().TransformExpr(E->getSubExprAsWritten());
8268 if (!getDerived().AlwaysRebuild() &&
8273 return getDerived().RebuildCXXFunctionalCastExpr(Type,
8284 = getDerived().TransformType(E->getTypeOperandSourceInfo());
8288 if (!getDerived().AlwaysRebuild() &&
8292 return getDerived().RebuildCXXTypeidExpr(E->getType(),
8305 ExprResult SubExpr = getDerived().TransformExpr(E->getExprOperand());
8309 if (!getDerived().AlwaysRebuild() &&
8313 return getDerived().RebuildCXXTypeidExpr(E->getType(),
8324 = getDerived().TransformType(E->getTypeOperandSourceInfo());
8328 if (!getDerived().AlwaysRebuild() &&
8332 return getDerived().RebuildCXXUuidofExpr(E->getType(),
8340 ExprResult SubExpr = getDerived().TransformExpr(E->getExprOperand());
8344 if (!getDerived().AlwaysRebuild() &&
8348 return getDerived().RebuildCXXUuidofExpr(E->getType(),
8372 if (!getDerived().AlwaysRebuild() && T == E->getType()) {
8378 return getDerived().RebuildCXXThisExpr(E->getLocStart(), T, E->isImplicit());
8384 ExprResult SubExpr = getDerived().TransformExpr(E->getSubExpr());
8388 if (!getDerived().AlwaysRebuild() &&
8392 return getDerived().RebuildCXXThrowExpr(E->getThrowLoc(), SubExpr.get(),
8400 = cast_or_null<ParmVarDecl>(getDerived().TransformDecl(E->getLocStart(),
8405 if (!getDerived().AlwaysRebuild() &&
8409 return getDerived().RebuildCXXDefaultArgExpr(E->getUsedLocation(), Param);
8416 = cast_or_null<FieldDecl>(getDerived().TransformDecl(E->getLocStart(),
8421 if (!getDerived().AlwaysRebuild() && Field == E->getField())
8424 return getDerived().RebuildCXXDefaultInitExpr(E->getExprLoc(), Field);
8431 TypeSourceInfo *T = getDerived().TransformType(E->getTypeSourceInfo());
8435 if (!getDerived().AlwaysRebuild() &&
8439 return getDerived().RebuildCXXScalarValueInitExpr(T,
8449 = getDerived().TransformType(E->getAllocatedTypeSourceInfo());
8454 ExprResult ArraySize = getDerived().TransformExpr(E->getArraySize());
8461 if (getDerived().TransformExprs(E->getPlacementArgs(),
8470 NewInit = getDerived().TransformInitializer(OldInit, true);
8478 getDerived().TransformDecl(E->getLocStart(),
8487 getDerived().TransformDecl(E->getLocStart(),
8493 if (!getDerived().AlwaysRebuild() &&
8546 return getDerived().RebuildCXXNewExpr(E->getLocStart(),
8562 ExprResult Operand = getDerived().TransformExpr(E->getArgument());
8570 getDerived().TransformDecl(E->getLocStart(),
8576 if (!getDerived().AlwaysRebuild() &&
8597 return getDerived().RebuildCXXDeleteExpr(E->getLocStart(),
8607 ExprResult Base = getDerived().TransformExpr(E->getBase());
8625 = getDerived().TransformNestedNameSpecifierLoc(QualifierLoc, ObjectType);
8635 = getDerived().TransformTypeInObjectScope(E->getDestroyedTypeInfo(),
8664 ScopeTypeInfo = getDerived().TransformTypeInObjectScope(
8670 return getDerived().RebuildCXXPseudoDestructorExpr(Base.get(),
8691 getDerived().TransformDecl(Old->getNameLoc(),
8723 = getDerived().TransformNestedNameSpecifierLoc(Old->getQualifierLoc());
8732 = cast_or_null<CXXRecordDecl>(getDerived().TransformDecl(
8748 return getDerived().RebuildDeclarationNameExpr(SS, R, Old->requiresADL());
8754 getDerived().TransformTemplateArguments(Old->getTemplateArgs(),
8761 return getDerived().RebuildTemplateIdExpr(SS, TemplateKWLoc, R,
8776 QualType To = getDerived().TransformType(TLB, FromTL);
8804 if (getDerived().TryExpandParameterPacks(ExpansionTL.getEllipsisLoc(),
8820 QualType To = getDerived().TransformType(TLB, PatternTL);
8824 To = getDerived().RebuildPackExpansionType(To,
8844 QualType To = getDerived().TransformType(TLB, PatternTL);
8849 To = getDerived().RebuildPackExpansionType(To,
8869 ForgetPartiallySubstitutedPackRAII Forget(getDerived());
8874 QualType To = getDerived().TransformType(TLB, PatternTL);
8878 To = getDerived().RebuildPackExpansionType(To,
8891 if (!getDerived().AlwaysRebuild() && !ArgChanged)
8894 return getDerived().RebuildTypeTrait(E->getTrait(),
8903 TypeSourceInfo *T = getDerived().TransformType(E->getQueriedTypeSourceInfo());
8907 if (!getDerived().AlwaysRebuild() &&
8914 SubExpr = getDerived().TransformExpr(E->getDimensionExpression());
8918 if (!getDerived().AlwaysRebuild() && SubExpr.get() == E->getDimensionExpression())
8922 return getDerived().RebuildArrayTypeTrait(E->getTrait(),
8935 SubExpr = getDerived().TransformExpr(E->getQueriedExpression());
8939 if (!getDerived().AlwaysRebuild() && SubExpr.get() == E->getQueriedExpression())
8943 return getDerived().RebuildExpressionTrait(
8951 ExprResult NewDRE = getDerived().TransformDependentScopeDeclRefExpr(
8959 if (!getDerived().AlwaysRebuild() && NewDRE.get() == DRE)
8961 return getDerived().RebuildParenExpr(NewDRE.get(), PE->getLParen(),
8980 = getDerived().TransformNestedNameSpecifierLoc(E->getQualifierLoc());
8990 = getDerived().TransformDeclarationNameInfo(E->getNameInfo());
8995 if (!getDerived().AlwaysRebuild() &&
9002 return getDerived().RebuildDependentScopeDeclRefExpr(
9008 if (getDerived().TransformTemplateArguments(E->getTemplateArgs(),
9013 return getDerived().RebuildDependentScopeDeclRefExpr(
9025 (E->getNumArgs() > 1 && getDerived().DropCallArgument(E->getArg(1)))) &&
9026 (!getDerived().DropCallArgument(E->getArg(0))) &&
9028 return getDerived().TransformExpr(E->getArg(0));
9032 QualType T = getDerived().TransformType(E->getType());
9038 getDerived().TransformDecl(E->getLocStart(),
9045 if (getDerived().TransformExprs(E->getArgs(), E->getNumArgs(), true, Args,
9049 if (!getDerived().AlwaysRebuild() &&
9059 return getDerived().RebuildCXXConstructExpr(T, /*FIXME:*/E->getLocStart(),
9077 return getDerived().TransformExpr(E->getSubExpr());
9088 return getDerived().TransformExpr(E->getSubExpr());
9095 TypeSourceInfo *T = getDerived().TransformType(E->getTypeSourceInfo());
9101 getDerived().TransformDecl(E->getLocStart(),
9113 if (!getDerived().AlwaysRebuild() &&
9123 return getDerived().RebuildCXXTemporaryObjectExpr(T,
9144 ExprResult NewExprInitResult = getDerived().TransformInitializer(
9167 LSI->GLTemplateParameterList = getDerived().TransformTemplateParameterList(
9201 getDerived().transformedLocalDecl(E->getLambdaClass(), Class);
9210 getDerived().transformAttrs(E->getCallOperator(), NewCallOperator);
9216 return getDerived().TransformLambdaScope(E, NewCallOperator,
9280 getDerived().transformedLocalDecl(OldVD, NewVD);
9300 if (getDerived().TryExpandParameterPacks(C->getEllipsisLoc(),
9317 = cast_or_null<VarDecl>(getDerived().TransformDecl(C->getLocation(),
9338 = cast_or_null<VarDecl>(getDerived().TransformDecl(C->getLocation(),
9363 StmtResult Body = getDerived().TransformStmt(E->getBody());
9379 TypeSourceInfo *T = getDerived().TransformType(E->getTypeSourceInfo());
9386 if (getDerived().TransformExprs(E->arg_begin(), E->arg_size(), true, Args,
9390 if (!getDerived().AlwaysRebuild() &&
9396 return getDerived().RebuildCXXUnresolvedConstructExpr(T,
9413 Base = getDerived().TransformExpr(OldBase);
9432 BaseType = getDerived().TransformType(E->getBaseType());
9439 = getDerived().TransformFirstQualifierInScope(
9446 = getDerived().TransformNestedNameSpecifierLoc(E->getQualifierLoc(),
9460 = getDerived().TransformDeclarationNameInfo(E->getMemberNameInfo());
9467 if (!getDerived().AlwaysRebuild() &&
9475 return getDerived().RebuildCXXDependentScopeMemberExpr(Base.get(),
9487 if (getDerived().TransformTemplateArguments(E->getTemplateArgs(),
9492 return getDerived().RebuildCXXDependentScopeMemberExpr(Base.get(),
9510 Base = getDerived().TransformExpr(Old->getBase());
9519 BaseType = getDerived().TransformType(Old->getBaseType());
9525 = getDerived().TransformNestedNameSpecifierLoc(Old->getQualifierLoc());
9539 getDerived().TransformDecl(Old->getMemberLoc(),
9568 = cast_or_null<CXXRecordDecl>(getDerived().TransformDecl(
9581 if (getDerived().TransformTemplateArguments(Old->getTemplateArgs(),
9593 return getDerived().RebuildUnresolvedMemberExpr(Base.get(),
9609 ExprResult SubExpr = getDerived().TransformExpr(E->getOperand());
9613 if (!getDerived().AlwaysRebuild() && SubExpr.get() == E->getOperand())
9616 return getDerived().RebuildCXXNoexceptExpr(E->getSourceRange(),SubExpr.get());
9622 ExprResult Pattern = getDerived().TransformExpr(E->getPattern());
9626 if (!getDerived().AlwaysRebuild() && Pattern.get() == E->getPattern())
9629 return getDerived().RebuildPackExpansion(Pattern.get(), E->getEllipsisLoc(),
9648 if (getDerived().TryExpandParameterPacks(E->getOperatorLoc(), E->getPackLoc(),
9659 Pack = cast_or_null<NamedDecl>(getDerived().TransformDecl(E->getPackLoc(),
9668 return getDerived().RebuildSizeOfPackExpr(E->getOperatorLoc(), Pack,
9700 return getDerived().TransformExpr(E->GetTemporaryExpr());
9717 if (getDerived().TryExpandParameterPacks(E->getEllipsisLoc(),
9730 E->getLHS() ? getDerived().TransformExpr(E->getLHS()) : ExprResult();
9735 E->getRHS() ? getDerived().TransformExpr(E->getRHS()) : ExprResult();
9739 if (!getDerived().AlwaysRebuild() &&
9743 return getDerived().RebuildCXXFoldExpr(
9750 ExprResult Result = getDerived().TransformExpr(E->getInit());
9758 ForgetPartiallySubstitutedPackRAII Forget(getDerived());
9760 ExprResult Out = getDerived().TransformExpr(Pattern);
9764 Result = getDerived().RebuildCXXFoldExpr(
9774 ExprResult Out = getDerived().TransformExpr(Pattern);
9780 Result = getDerived().RebuildCXXFoldExpr(
9788 Result = getDerived().RebuildBinaryOperator(
9802 ForgetPartiallySubstitutedPackRAII Forget(getDerived());
9804 ExprResult Out = getDerived().TransformExpr(Pattern);
9808 Result = getDerived().RebuildCXXFoldExpr(
9819 return getDerived().RebuildEmptyCXXFoldExpr(E->getEllipsisLoc(),
9829 return getDerived().TransformExpr(E->getSubExpr());
9847 ExprResult SubExpr = getDerived().TransformExpr(E->getSubExpr());
9851 if (!getDerived().AlwaysRebuild() &&
9855 return getDerived().RebuildObjCBoxedExpr(E->getSourceRange(), SubExpr.get());
9864 if (getDerived().TransformExprs(E->getElements(), E->getNumElements(),
9868 if (!getDerived().AlwaysRebuild() && !ArgChanged)
9871 return getDerived().RebuildObjCArrayLiteral(E->getSourceRange(),
9901 if (getDerived().TryExpandParameterPacks(OrigElement.EllipsisLoc,
9913 ExprResult Key = getDerived().TransformExpr(OrigElement.Key);
9920 ExprResult Value = getDerived().TransformExpr(OrigElement.Value);
9942 ExprResult Key = getDerived().TransformExpr(OrigElement.Key);
9946 ExprResult Value = getDerived().TransformExpr(OrigElement.Value);
9971 ExprResult Key = getDerived().TransformExpr(OrigElement.Key);
9980 = getDerived().TransformExpr(OrigElement.Value);
9993 if (!getDerived().AlwaysRebuild() && !ArgChanged)
9996 return getDerived().RebuildObjCDictionaryLiteral(E->getSourceRange(),
10005 = getDerived().TransformType(E->getEncodedTypeSourceInfo());
10009 if (!getDerived().AlwaysRebuild() &&
10013 return getDerived().RebuildObjCEncodeExpr(E->getAtLoc(),
10025 return getDerived().TransformExpr(E->getSubExpr());
10032 = getDerived().TransformType(E->getTypeInfoAsWritten());
10036 ExprResult Result = getDerived().TransformExpr(E->getSubExpr());
10040 if (!getDerived().AlwaysRebuild() &&
10057 if (getDerived().TransformExprs(E->getArgs(), E->getNumArgs(), false, Args,
10064 = getDerived().TransformType(E->getClassReceiverTypeInfo());
10069 if (!getDerived().AlwaysRebuild() &&
10076 return getDerived().RebuildObjCMessageExpr(ReceiverTypeInfo,
10089 return getDerived().RebuildObjCMessageExpr(E->getSuperLoc(),
10102 = getDerived().TransformExpr(E->getInstanceReceiver());
10107 if (!getDerived().AlwaysRebuild() &&
10114 return getDerived().RebuildObjCMessageExpr(Receiver.get(),
10139 ExprResult Base = getDerived().TransformExpr(E->getBase());
10146 if (!getDerived().AlwaysRebuild() &&
10150 return getDerived().RebuildObjCIvarRefExpr(Base.get(), E->getDecl(),
10164 ExprResult Base = getDerived().TransformExpr(E->getBase());
10171 if (!getDerived().AlwaysRebuild() &&
10176 return getDerived().RebuildObjCPropertyRefExpr(Base.get(),
10180 return getDerived().RebuildObjCPropertyRefExpr(Base.get(),
10191 ExprResult Base = getDerived().TransformExpr(E->getBaseExpr());
10196 ExprResult Key = getDerived().TransformExpr(E->getKeyExpr());
10201 if (!getDerived().AlwaysRebuild() &&
10205 return getDerived().RebuildObjCSubscriptRefExpr(E->getRBracket(),
10215 ExprResult Base = getDerived().TransformExpr(E->getBase());
10220 if (!getDerived().AlwaysRebuild() &&
10224 return getDerived().RebuildObjCIsaExpr(Base.get(), E->getIsaMemberLoc(),
10235 if (getDerived().TransformExprs(E->getSubExprs(), E->getNumSubExprs(), false,
10239 if (!getDerived().AlwaysRebuild() &&
10243 return getDerived().RebuildShuffleVectorExpr(E->getBuiltinLoc(),
10251 ExprResult SrcExpr = getDerived().TransformExpr(E->getSrcExpr());
10255 TypeSourceInfo *Type = getDerived().TransformType(E->getTypeSourceInfo());
10259 if (!getDerived().AlwaysRebuild() &&
10264 return getDerived().RebuildConvertVectorExpr(E->getBuiltinLoc(),
10285 if (getDerived().TransformFunctionTypeParams(E->getCaretLocation(),
10295 getDerived().TransformType(exprFunctionType->getReturnType());
10298 getDerived().RebuildFunctionProtoType(exprResultType, paramTypes,
10312 StmtResult body = getDerived().TransformStmt(E->getBody());
10331 cast<VarDecl>(getDerived().TransformDecl(E->getCaretLocation(),
10352 QualType RetTy = getDerived().TransformType(E->getType());
10356 if (getDerived().TransformExprs(E->getSubExprs(), E->getNumSubExprs(), false,
10360 if (!getDerived().AlwaysRebuild() &&
10364 return getDerived().RebuildAtomicExpr(E->getBuiltinLoc(), SubExprs,
10376 getDerived().getBaseEntity());
10383 getDerived().getBaseEntity());
10392 Sigil, getDerived().getBaseEntity());
10401 getDerived().getBaseEntity());
10415 getDerived().getBaseEntity());
10437 getDerived().getBaseEntity());
10447 return getDerived().RebuildArrayType(ElementType, SizeMod, &Size, nullptr,
10457 return getDerived().RebuildArrayType(ElementType, SizeMod, nullptr, nullptr,
10468 return getDerived().RebuildArrayType(ElementType, SizeMod, nullptr,
10480 return getDerived().RebuildArrayType(ElementType, SizeMod, nullptr,
10519 getDerived().getBaseLocation(),
10520 getDerived().getBaseEntity(),
10821 getDerived().TransformType(CD->getParam(I)->getType())));
10831 Body = getDerived().TransformStmt(S->getCapturedStmt());