@@ -1957,7 +1957,7 @@ static bool isLegalArrayNewInitializer(CXXNewInitializationStyle Style,
1957
1957
else if (CXXConstructExpr *CCE = dyn_cast<CXXConstructExpr>(Init))
1958
1958
return !CCE->isListInitialization() &&
1959
1959
CCE->getConstructor()->isDefaultConstructor();
1960
- else if (Style == CXXNewInitializationStyle::List ) {
1960
+ else if (Style == CXXNewInitializationStyle::Braces ) {
1961
1961
assert(isa<InitListExpr>(Init) &&
1962
1962
"Shouldn't create list CXXConstructExprs for arrays.");
1963
1963
return true;
@@ -2011,9 +2011,9 @@ ExprResult Sema::BuildCXXNew(SourceRange Range, bool UseGlobal,
2011
2011
CXXNewInitializationStyle InitStyle;
2012
2012
if (DirectInitRange.isValid()) {
2013
2013
assert(Initializer && "Have parens but no initializer.");
2014
- InitStyle = CXXNewInitializationStyle::Call ;
2014
+ InitStyle = CXXNewInitializationStyle::Parens ;
2015
2015
} else if (Initializer && isa<InitListExpr>(Initializer))
2016
- InitStyle = CXXNewInitializationStyle::List ;
2016
+ InitStyle = CXXNewInitializationStyle::Braces ;
2017
2017
else {
2018
2018
assert((!Initializer || isa<ImplicitValueInitExpr>(Initializer) ||
2019
2019
isa<CXXConstructExpr>(Initializer)) &&
@@ -2023,7 +2023,7 @@ ExprResult Sema::BuildCXXNew(SourceRange Range, bool UseGlobal,
2023
2023
2024
2024
MultiExprArg Exprs(&Initializer, Initializer ? 1 : 0);
2025
2025
if (ParenListExpr *List = dyn_cast_or_null<ParenListExpr>(Initializer)) {
2026
- assert(InitStyle == CXXNewInitializationStyle::Call &&
2026
+ assert(InitStyle == CXXNewInitializationStyle::Parens &&
2027
2027
"paren init for non-call init");
2028
2028
Exprs = MultiExprArg(List->getExprs(), List->getNumExprs());
2029
2029
}
@@ -2037,15 +2037,14 @@ ExprResult Sema::BuildCXXNew(SourceRange Range, bool UseGlobal,
2037
2037
// initialized (8.5); if no initialization is performed,
2038
2038
// the object has indeterminate value
2039
2039
case CXXNewInitializationStyle::None:
2040
- case CXXNewInitializationStyle::Implicit:
2041
2040
return InitializationKind::CreateDefault(TypeRange.getBegin());
2042
2041
// - Otherwise, the new-initializer is interpreted according to the
2043
2042
// initialization rules of 8.5 for direct-initialization.
2044
- case CXXNewInitializationStyle::Call :
2043
+ case CXXNewInitializationStyle::Parens :
2045
2044
return InitializationKind::CreateDirect(TypeRange.getBegin(),
2046
2045
DirectInitRange.getBegin(),
2047
2046
DirectInitRange.getEnd());
2048
- case CXXNewInitializationStyle::List :
2047
+ case CXXNewInitializationStyle::Braces :
2049
2048
return InitializationKind::CreateDirectList(TypeRange.getBegin(),
2050
2049
Initializer->getBeginLoc(),
2051
2050
Initializer->getEndLoc());
@@ -2072,14 +2071,13 @@ ExprResult Sema::BuildCXXNew(SourceRange Range, bool UseGlobal,
2072
2071
return ExprError();
2073
2072
} else if (Deduced && !Deduced->isDeduced()) {
2074
2073
MultiExprArg Inits = Exprs;
2075
- bool Braced = (InitStyle == CXXNewInitializationStyle::List );
2074
+ bool Braced = (InitStyle == CXXNewInitializationStyle::Braces );
2076
2075
if (Braced) {
2077
2076
auto *ILE = cast<InitListExpr>(Exprs[0]);
2078
2077
Inits = MultiExprArg(ILE->getInits(), ILE->getNumInits());
2079
2078
}
2080
2079
2081
- if (InitStyle == CXXNewInitializationStyle::None ||
2082
- InitStyle == CXXNewInitializationStyle::Implicit || Inits.empty())
2080
+ if (InitStyle == CXXNewInitializationStyle::None || Inits.empty())
2083
2081
return ExprError(Diag(StartLoc, diag::err_auto_new_requires_ctor_arg)
2084
2082
<< AllocType << TypeRange);
2085
2083
if (Inits.size() > 1) {
@@ -2447,14 +2445,6 @@ ExprResult Sema::BuildCXXNew(SourceRange Range, bool UseGlobal,
2447
2445
FullInit = Binder->getSubExpr();
2448
2446
2449
2447
Initializer = FullInit.get();
2450
- // We don't know that we're generating an implicit initializer until now, so
2451
- // we have to update the initialization style as well.
2452
- //
2453
- // FIXME: it would be nice to determine the correct initialization style
2454
- // earlier so InitStyle doesn't need adjusting.
2455
- if (InitStyle == CXXNewInitializationStyle::None && Initializer) {
2456
- InitStyle = CXXNewInitializationStyle::Implicit;
2457
- }
2458
2448
2459
2449
// FIXME: If we have a KnownArraySize, check that the array bound of the
2460
2450
// initializer is no greater than that constant value.
0 commit comments