diff options
Diffstat (limited to 'clang/test')
-rw-r--r-- | clang/test/SemaTemplate/array-redeclaration.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/clang/test/SemaTemplate/array-redeclaration.cpp b/clang/test/SemaTemplate/array-redeclaration.cpp new file mode 100644 index 00000000000..4edee701cfc --- /dev/null +++ b/clang/test/SemaTemplate/array-redeclaration.cpp @@ -0,0 +1,33 @@ +// RUN: %clang_cc1 -fsyntax-only -verify %s +// expected-no-diagnostics + +extern int array[1]; + +template <typename> +class C { + enum { D }; +public: + template <typename A> void foo1() { + extern int array[((int)C<A>::k > (int)D) ? 1 : -1]; + } +}; + +template<> +class C<int> { +public: + const static int k = 2; +}; + +void foo2() { + C<char> c; + c.foo1<int>(); +} + +template<int n> +void foo3() { + extern int array[n ? 1 : -1]; +} + +void foo4() { + foo3<5>(); +} |