summaryrefslogtreecommitdiffstats
path: root/clang/test/Parser/cxx-template-decl.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2013-06-25 22:21:36 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2013-06-25 22:21:36 +0000
commitb80d54049b1a299254f142bfb886a90fa4774cd3 (patch)
tree6cc80f57e29a4f89d005bebe4607afd97cc0ba23 /clang/test/Parser/cxx-template-decl.cpp
parent35779955b3b845f0d72d0b63bda482c5f64f21f0 (diff)
downloadbcm5719-llvm-b80d54049b1a299254f142bfb886a90fa4774cd3.tar.gz
bcm5719-llvm-b80d54049b1a299254f142bfb886a90fa4774cd3.zip
PR8302: Check for shadowing a template parameter when declaring a template
template parameter. llvm-svn: 184884
Diffstat (limited to 'clang/test/Parser/cxx-template-decl.cpp')
-rw-r--r--clang/test/Parser/cxx-template-decl.cpp13
1 files changed, 13 insertions, 0 deletions
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<typename T, // expected-note{{template parameter is declared here}}
+ T T> // expected-error{{declaration of 'T' shadows template parameter}}
+void shadow6();
+
+template<typename T, // expected-note{{template parameter is declared here}}
+ template<typename> class T> // expected-error{{declaration of 'T' shadows template parameter}}
+void shadow7();
+
+// PR8302
+template<template<typename> class T> struct shadow8 { // expected-note{{template parameter is declared here}}
+ template<template<typename> class T> struct inner; // expected-error{{declaration of 'T' shadows template parameter}}
+};
+
// Non-type template parameters in scope
template<int Size>
void f(int& i) {
OpenPOWER on IntegriCloud