aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/Sema/TreeTransform.h4
-rw-r--r--test/SemaTemplate/instantiate-member-initializers.cpp10
2 files changed, 10 insertions, 4 deletions
diff --git a/lib/Sema/TreeTransform.h b/lib/Sema/TreeTransform.h
index 52f6c4d4c0..c161d8cfcb 100644
--- a/lib/Sema/TreeTransform.h
+++ b/lib/Sema/TreeTransform.h
@@ -2622,10 +2622,6 @@ ExprResult TreeTransform<Derived>::TransformInitializer(Expr *Init,
Construct->getLocEnd(),
Construct->getType());
- // Treat an empty initializer like none.
- if (NewArgs.empty())
- return SemaRef.Owned((Expr*)0);
-
// Build a ParenListExpr to represent anything else.
SourceRange Parens = Construct->getParenRange();
return getDerived().RebuildParenListExpr(Parens.getBegin(), NewArgs,
diff --git a/test/SemaTemplate/instantiate-member-initializers.cpp b/test/SemaTemplate/instantiate-member-initializers.cpp
index 45503b38b3..297ae917bb 100644
--- a/test/SemaTemplate/instantiate-member-initializers.cpp
+++ b/test/SemaTemplate/instantiate-member-initializers.cpp
@@ -25,3 +25,13 @@ public:
BB() : AA<T>(1) {}
};
BB<int> x;
+
+struct X {
+ X();
+};
+template<typename T>
+struct Y {
+ Y() : x() {}
+ X x;
+};
+Y<int> y;