From 3b717527f4e41337e90ef47f743543f25cb4949c Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Thu, 21 Aug 2014 20:51:13 +0000 Subject: Return statements are initialization; don't forget to revert the initializer to its syntactic form before re-analyzing it during template instantiation. llvm-svn: 216224 --- clang/test/SemaTemplate/instantiate-init.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'clang/test/SemaTemplate/instantiate-init.cpp') diff --git a/clang/test/SemaTemplate/instantiate-init.cpp b/clang/test/SemaTemplate/instantiate-init.cpp index 22c70be3a8d..7a33aec6653 100644 --- a/clang/test/SemaTemplate/instantiate-init.cpp +++ b/clang/test/SemaTemplate/instantiate-init.cpp @@ -133,3 +133,12 @@ namespace PR16903 { fun(in); } } + +namespace ReturnStmtIsInitialization { + struct X { + X() {} + X(const X &) = delete; + }; + template X f() { return {}; } + auto &&x = f(); +} -- cgit v1.2.3