diff options
-rw-r--r-- | lib/Sema/TreeTransform.h | 4 | ||||
-rw-r--r-- | test/SemaTemplate/instantiate-member-initializers.cpp | 10 |
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; |