From 222e2a7620e6520ffaf4fc4e69d79c18da31542e Mon Sep 17 00:00:00 2001 From: "Zancanaro; Carlo" Date: Mon, 24 Sep 2012 09:58:17 +1000 Subject: Add the clang library to the repo (with some of my changes, too). --- .../test/CXX/temp/temp.spec/temp.expl.spec/p17.cpp | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 clang/test/CXX/temp/temp.spec/temp.expl.spec/p17.cpp (limited to 'clang/test/CXX/temp/temp.spec/temp.expl.spec/p17.cpp') diff --git a/clang/test/CXX/temp/temp.spec/temp.expl.spec/p17.cpp b/clang/test/CXX/temp/temp.spec/temp.expl.spec/p17.cpp new file mode 100644 index 0000000..56231e2 --- /dev/null +++ b/clang/test/CXX/temp/temp.spec/temp.expl.spec/p17.cpp @@ -0,0 +1,34 @@ +// RUN: %clang_cc1 -fsyntax-only -verify %s +template +class A { + template class B { + void mf(); + }; +}; + +template<> template<> class A::B; +template<> template<> void A::B::mf(); + +template<> void A::B::mf(); // expected-error{{requires 'template<>'}} + +namespace test1 { + template class A { + static int foo; + static int bar; + }; + typedef A AA; + + template <> int AA::foo = 0; + int AA::bar = 1; // expected-error {{template specialization requires 'template<>'}} + int A::bar = 2; // expected-error {{template specialization requires 'template<>'}} + + template <> class A { + public: + static int foo; + static int bar; + }; + + typedef A AB; + template <> int AB::foo = 0; // expected-error{{extraneous 'template<>'}} + int AB::bar = 1; +} -- cgit v1.2.3