From f187420feb5429f97533cac1e160d08c2b9cb47a Mon Sep 17 00:00:00 2001 From: Douglas Gregor Date: Wed, 17 Jun 2009 23:37:01 +0000 Subject: Diagnose class members that shadow a template parameter. Fixes . To do this, we actually remove a not-quite-correct optimization in the C++ name lookup routines. We'll revisit this optimization for the general case once more C++ is working. llvm-svn: 73659 --- clang/test/Parser/cxx-template-decl.cpp | 11 +++++++++++ 1 file changed, 11 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 ae5d8f9e0cc..75b26a98e44 100644 --- a/clang/test/Parser/cxx-template-decl.cpp +++ b/clang/test/Parser/cxx-template-decl.cpp @@ -66,6 +66,17 @@ class T { // expected-error{{declaration of 'T' shadows template parameter}} template // expected-note{{template parameter is declared here}} void shadow3(int Size); // expected-error{{declaration of 'Size' shadows template parameter}} +// +template // expected-note{{here}} +struct shadow4 { + int T; // expected-error{{shadows}} +}; + +template // expected-note{{here}} +struct shadow5 { + int T(int, float); // expected-error{{shadows}} +}; + // Non-type template parameters in scope template void f(int& i) { -- cgit v1.2.3