@@ -1009,21 +1009,23 @@ const IdentifierInfo *UserDefinedLiteral::getUDSuffix() const {
10091009}
10101010
10111011CXXDefaultArgExpr *CXXDefaultArgExpr::CreateEmpty (const ASTContext &C,
1012- bool HasRewrittenInit) {
1012+ bool HasRewrittenInit,
1013+ bool HasRebuiltInit) {
10131014 size_t Size = totalSizeToAlloc<Expr *>(HasRewrittenInit);
10141015 auto *Mem = C.Allocate (Size, alignof (CXXDefaultArgExpr));
1015- return new (Mem) CXXDefaultArgExpr (EmptyShell (), HasRewrittenInit);
1016+ return new (Mem)
1017+ CXXDefaultArgExpr (EmptyShell (), HasRewrittenInit, HasRebuiltInit);
10161018}
10171019
1018- CXXDefaultArgExpr *CXXDefaultArgExpr::Create (const ASTContext &C,
1019- SourceLocation Loc,
1020- ParmVarDecl *Param,
1021- Expr *RewrittenExpr,
1022- DeclContext *UsedContext) {
1020+ CXXDefaultArgExpr *
1021+ CXXDefaultArgExpr::Create (const ASTContext &C, SourceLocation Loc,
1022+ ParmVarDecl *Param, DeclContext *UsedContext,
1023+ Expr *RewrittenExpr, bool HasRebuiltInit) {
10231024 size_t Size = totalSizeToAlloc<Expr *>(RewrittenExpr != nullptr );
10241025 auto *Mem = C.Allocate (Size, alignof (CXXDefaultArgExpr));
1025- return new (Mem) CXXDefaultArgExpr (CXXDefaultArgExprClass, Loc, Param,
1026- RewrittenExpr, UsedContext);
1026+ return new (Mem)
1027+ CXXDefaultArgExpr (CXXDefaultArgExprClass, Loc, Param, UsedContext,
1028+ RewrittenExpr, HasRebuiltInit);
10271029}
10281030
10291031Expr *CXXDefaultArgExpr::getExpr () {
@@ -1044,7 +1046,8 @@ Expr *CXXDefaultArgExpr::getAdjustedRewrittenExpr() {
10441046CXXDefaultInitExpr::CXXDefaultInitExpr (const ASTContext &Ctx,
10451047 SourceLocation Loc, FieldDecl *Field,
10461048 QualType Ty, DeclContext *UsedContext,
1047- Expr *RewrittenInitExpr)
1049+ Expr *RewrittenInitExpr,
1050+ bool hasRebuiltInit)
10481051 : Expr(CXXDefaultInitExprClass, Ty.getNonLValueExprType(Ctx),
10491052 Ty->isLValueReferenceType() ? VK_LValue
10501053 : Ty->isRValueReferenceType() ? VK_XValue
@@ -1053,6 +1056,7 @@ CXXDefaultInitExpr::CXXDefaultInitExpr(const ASTContext &Ctx,
10531056 Field(Field), UsedContext(UsedContext) {
10541057 CXXDefaultInitExprBits.Loc = Loc;
10551058 CXXDefaultInitExprBits.HasRewrittenInit = RewrittenInitExpr != nullptr ;
1059+ CXXDefaultInitExprBits.HasRebuiltInit = hasRebuiltInit;
10561060
10571061 if (CXXDefaultInitExprBits.HasRewrittenInit )
10581062 *getTrailingObjects<Expr *>() = RewrittenInitExpr;
@@ -1063,22 +1067,24 @@ CXXDefaultInitExpr::CXXDefaultInitExpr(const ASTContext &Ctx,
10631067}
10641068
10651069CXXDefaultInitExpr *CXXDefaultInitExpr::CreateEmpty (const ASTContext &C,
1066- bool HasRewrittenInit) {
1070+ bool HasRewrittenInit,
1071+ bool HasRebuiltInit) {
10671072 size_t Size = totalSizeToAlloc<Expr *>(HasRewrittenInit);
10681073 auto *Mem = C.Allocate (Size, alignof (CXXDefaultInitExpr));
1069- return new (Mem) CXXDefaultInitExpr (EmptyShell (), HasRewrittenInit);
1074+ return new (Mem)
1075+ CXXDefaultInitExpr (EmptyShell (), HasRewrittenInit, HasRebuiltInit);
10701076}
10711077
1072- CXXDefaultInitExpr *CXXDefaultInitExpr::Create (const ASTContext &Ctx,
1073- SourceLocation Loc,
1074- FieldDecl *Field,
1075- DeclContext *UsedContext,
1076- Expr *RewrittenInitExpr) {
1078+ CXXDefaultInitExpr *
1079+ CXXDefaultInitExpr::Create (const ASTContext &Ctx, SourceLocation Loc,
1080+ FieldDecl *Field, DeclContext *UsedContext,
1081+ Expr *RewrittenInitExpr, bool HasRebuiltInit) {
10771082
10781083 size_t Size = totalSizeToAlloc<Expr *>(RewrittenInitExpr != nullptr );
10791084 auto *Mem = Ctx.Allocate (Size, alignof (CXXDefaultInitExpr));
1080- return new (Mem) CXXDefaultInitExpr (Ctx, Loc, Field, Field->getType (),
1081- UsedContext, RewrittenInitExpr);
1085+ return new (Mem)
1086+ CXXDefaultInitExpr (Ctx, Loc, Field, Field->getType (), UsedContext,
1087+ RewrittenInitExpr, HasRebuiltInit);
10821088}
10831089
10841090Expr *CXXDefaultInitExpr::getExpr () {
0 commit comments