summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaTemplate/injected-class-name.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2009-07-29 16:09:57 +0000
committerDouglas Gregor <dgregor@apple.com>2009-07-29 16:09:57 +0000
commit0004417e81d881bffd7190ae6fd2ce3553363b3b (patch)
treedde1931f65e8eb0d706ecc89b3ecf268b45f723a /clang/test/SemaTemplate/injected-class-name.cpp
parentea2f1ceb4b6d5f7552379f4e2ea6efb0b12f195c (diff)
downloadbcm5719-llvm-0004417e81d881bffd7190ae6fd2ce3553363b3b.tar.gz
bcm5719-llvm-0004417e81d881bffd7190ae6fd2ce3553363b3b.zip
Use the new statement/expression profiling code to unique dependent
template arguments, as in template specialization types. This permits matching out-of-line definitions of members for class templates that involve non-type template parameters. llvm-svn: 77462
Diffstat (limited to 'clang/test/SemaTemplate/injected-class-name.cpp')
-rw-r--r--clang/test/SemaTemplate/injected-class-name.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/clang/test/SemaTemplate/injected-class-name.cpp b/clang/test/SemaTemplate/injected-class-name.cpp
index c5f826d849c..f9674c39a58 100644
--- a/clang/test/SemaTemplate/injected-class-name.cpp
+++ b/clang/test/SemaTemplate/injected-class-name.cpp
@@ -19,7 +19,7 @@ X<float>::X<int> xi = x;
// [temp.local]p1:
-// FIXME: test non-type and template template parameters
+// FIXME: test template template parameters
template<typename T, typename U>
struct X0 {
typedef T type;
@@ -38,3 +38,11 @@ struct X0 {
void f2(X0&);
void f2(const ::X0<type, U_type2>&); // expected-error{{redecl}}
};
+
+template<typename T, T N>
+struct X1 {
+ void f0(const X1&); // expected-note{{here}}
+ void f0(X1&);
+ void f0(const X1<T, N>&); // expected-error{{redecl}}
+};
+
OpenPOWER on IntegriCloud