initializer (for no initialization) rather than a ParenListExpr with
zero arguments in it.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95382
91177308-0d34-0410-b5e6-
96231b3b80d8
if (Init.isInvalid())
Var->setInvalidDecl();
else {
- Var->setInit(Context,
+ if (Init.get())
+ Var->setInit(Context,
MaybeCreateCXXExprWithTemporaries(Init.takeAs<Expr>()));
FinalizeVarWithDestructor(Var, InitType->getAs<RecordType>());
}
if (Kind.getKind() == InitializationKind::IK_Copy || Kind.isExplicitCast())
return Sema::OwningExprResult(S, Args.release()[0]);
+ if (Args.size() == 0)
+ return S.Owned((Expr *)0);
+
unsigned NumArgs = Args.size();
return S.Owned(new (S.Context) ParenListExpr(S.Context,
SourceLocation(),
template void f0<int>();
template void f0<float>();
+
+struct NonTrivial {
+ NonTrivial();
+ ~NonTrivial();
+};
+
+template<int N> void f1() {
+ NonTrivial array[N];
+}
+template<> void f1<2>();