diff options
| author | Douglas Gregor <dgregor@apple.com> | 2009-07-29 16:13:25 +0000 |
|---|---|---|
| committer | Douglas Gregor <dgregor@apple.com> | 2009-07-29 16:13:25 +0000 |
| commit | b55d8e914ad5570218fc6d97eda388cb2cc8b207 (patch) | |
| tree | a39b527a8df10081f93415894c750a8cf5e35ee0 | |
| parent | 0004417e81d881bffd7190ae6fd2ce3553363b3b (diff) | |
| download | bcm5719-llvm-b55d8e914ad5570218fc6d97eda388cb2cc8b207.tar.gz bcm5719-llvm-b55d8e914ad5570218fc6d97eda388cb2cc8b207.zip | |
Test redefinition of class template partial specializations
llvm-svn: 77463
| -rw-r--r-- | clang/test/SemaTemplate/temp_class_spec.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/clang/test/SemaTemplate/temp_class_spec.cpp b/clang/test/SemaTemplate/temp_class_spec.cpp index 9087b012b32..26a6a1dc385 100644 --- a/clang/test/SemaTemplate/temp_class_spec.cpp +++ b/clang/test/SemaTemplate/temp_class_spec.cpp @@ -47,7 +47,7 @@ int is_const1[is_const<const int>::value? 1 : -1]; int is_const2[is_const<const volatile int>::value? 1 : -1]; int is_const3[is_const<const int [3]>::value? 1 : -1]; int is_const4[is_const<const volatile int[3]>::value? 1 : -1]; -int is_const4[is_const<volatile int[3]>::value? -1 : 1]; +int is_const5[is_const<volatile int[3]>::value? -1 : 1]; template<typename T> struct is_volatile { @@ -324,3 +324,10 @@ template<class T, int I> class A<T, T*, I> { }; //#2 template<class T1, class T2, int I> class A<T1*, T2, I> { }; //#3 template<class T> class A<int, T*, 5> { }; //#4 template<class T1, class T2, int I> class A<T1, T2*, I> { }; //#5 + +// Redeclaration of class template partial specializations +template<typename T, T N, typename U> class A0; + +template<typename T, T N> class A0<T, N, int> { }; // expected-note{{here}} +template<typename T, T N> class A0<T, N, int>; +template<typename T, T N> class A0<T, N, int> { }; // expected-error{{redef}} |

