From ef06ccf8d0aa401aef79102a1c5c1e1b4a4815a2 Mon Sep 17 00:00:00 2001 From: Douglas Gregor Date: Mon, 12 Oct 2009 23:11:44 +0000 Subject: When declaring a class template whose name is qualified, make sure that the scope in which it is being declared is complete. Also, when instantiating a member class template's ClassTemplateDecl, be sure to delay type creation so that the resulting type is dependent. Ick. llvm-svn: 83923 --- clang/test/CXX/temp/temp.spec/temp.expl.spec/p18.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 clang/test/CXX/temp/temp.spec/temp.expl.spec/p18.cpp (limited to 'clang/test/CXX/temp/temp.spec/temp.expl.spec/p18.cpp') diff --git a/clang/test/CXX/temp/temp.spec/temp.expl.spec/p18.cpp b/clang/test/CXX/temp/temp.spec/temp.expl.spec/p18.cpp new file mode 100644 index 00000000000..112444af954 --- /dev/null +++ b/clang/test/CXX/temp/temp.spec/temp.expl.spec/p18.cpp @@ -0,0 +1,16 @@ +// RUN: clang-cc -fsyntax-only -verify %s +template class A { + template class B { + template void mf1(T3); + void mf2(); + }; +}; + +template<> template +class A::B { }; + +template<> template<> template + void A::B::mf1(T t) { } + +template template<> + void A::B::mf2() { } // expected-error{{does not refer}} -- cgit v1.2.3