From 173a4f43a911175643bda81ee675e8d9269056ea Mon Sep 17 00:00:00 2001 From: dim Date: Mon, 24 Nov 2014 09:15:30 +0000 Subject: Vendor import of clang RELEASE_350/final tag r216957 (effectively, 3.5.0 release): https://llvm.org/svn/llvm-project/cfe/tags/RELEASE_350/final@216957 --- test/Parser/DelayedTemplateParsing.cpp | 60 ++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) (limited to 'test/Parser/DelayedTemplateParsing.cpp') diff --git a/test/Parser/DelayedTemplateParsing.cpp b/test/Parser/DelayedTemplateParsing.cpp index 73128c4..eff3120 100644 --- a/test/Parser/DelayedTemplateParsing.cpp +++ b/test/Parser/DelayedTemplateParsing.cpp @@ -121,3 +121,63 @@ constexpr T Fun(T A) { return T(0); } constexpr int Var = Fun(20); } +template +auto invalidTrailingRetType() -> Bogus {} // expected-error {{unknown type name 'Bogus'}} + +namespace PR19613 { + +struct HeapTypeConfig { + static void from_bitset(); +}; + +template +struct TypeImpl { + struct BitsetType; + + static void Any() { + BitsetType::New(); + } +}; + +template +struct TypeImpl::BitsetType { + static void New() { + Config::from_bitset(); + } +}; + +static void f() { + TypeImpl::Any(); +} + +template struct S { + template struct T; +}; +template template struct S::T { + template struct U; + template struct U { + template static int f() { + return sizeof(A) + sizeof(B) + sizeof(C) + sizeof(E); + } + }; +}; + +static void g() { + S::T::U::f(); +} + +template struct SS { + template struct X; + template struct X; +}; +template template struct SS::X { + static int f() { + return sizeof(T) + sizeof(U); + } +}; + +static void h() { + SS::X::f(); +} + +} -- cgit v1.1