From 790462cc37eb4ee9424408ca56a74bca9b3ef693 Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Fri, 22 Jan 2016 21:17:12 +0000 Subject: Vendor import of clang release_38 branch r258549: https://llvm.org/svn/llvm-project/cfe/branches/release_38@258549 --- test/SemaTemplate/default-arguments.cpp | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'test/SemaTemplate/default-arguments.cpp') diff --git a/test/SemaTemplate/default-arguments.cpp b/test/SemaTemplate/default-arguments.cpp index 740a5a9d07b3..d3e249db7ee2 100644 --- a/test/SemaTemplate/default-arguments.cpp +++ b/test/SemaTemplate/default-arguments.cpp @@ -179,3 +179,31 @@ struct C { C(T t = ); // expected-error {{expected expression}} }; C obj; + +namespace PR26134 { +// Make sure when substituting default template arguments we do it in the current context. +template +struct X {}; + +template struct Y { + void f() { X xy; } + static const bool value = B; +}; + +namespace ns1 { +template +struct X { + template struct XInner { static const bool value = B; }; +}; +template struct S { static const bool value = B; }; +#if __cplusplus > 199711L +template struct Y { + static constexpr bool f() { return typename X>::template XInner<>{}.value; } + static_assert(f() == B, ""); +}; +Y y; +Y y2; +#endif + +} // end ns1 +} // end ns PR26134 -- cgit v1.3