From b80d54049b1a299254f142bfb886a90fa4774cd3 Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Tue, 25 Jun 2013 22:21:36 +0000 Subject: PR8302: Check for shadowing a template parameter when declaring a template template parameter. llvm-svn: 184884 --- clang/test/Parser/cxx-template-decl.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'clang/test/Parser/cxx-template-decl.cpp') diff --git a/clang/test/Parser/cxx-template-decl.cpp b/clang/test/Parser/cxx-template-decl.cpp index 7e931a31fa2..7200c9d78f7 100644 --- a/clang/test/Parser/cxx-template-decl.cpp +++ b/clang/test/Parser/cxx-template-decl.cpp @@ -85,6 +85,19 @@ struct shadow5 { int T(int, float); // expected-error{{shadows}} }; +template // expected-error{{declaration of 'T' shadows template parameter}} +void shadow6(); + +template class T> // expected-error{{declaration of 'T' shadows template parameter}} +void shadow7(); + +// PR8302 +template class T> struct shadow8 { // expected-note{{template parameter is declared here}} + template class T> struct inner; // expected-error{{declaration of 'T' shadows template parameter}} +}; + // Non-type template parameters in scope template void f(int& i) { -- cgit v1.2.3