aboutsummaryrefslogtreecommitdiff
path: root/test/CXX/basic/basic.scope/basic.scope.pdecl/p9.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2010-07-01 00:21:50 +0000
committerDouglas Gregor <dgregor@apple.com>2010-07-01 00:21:50 +0000
commitd7115a81b1a70db1652a7b518dbdaefa3bb6b3fd (patch)
tree5f1d27b75863380e4ad01794cc7187b1820997d7 /test/CXX/basic/basic.scope/basic.scope.pdecl/p9.cpp
parent025291b591a528d8a3f303991f65e19fa1e90a9d (diff)
Add test case that I forgot to commit with r107354 (the implementation
of C++ DR481). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107359 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CXX/basic/basic.scope/basic.scope.pdecl/p9.cpp')
-rw-r--r--test/CXX/basic/basic.scope/basic.scope.pdecl/p9.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/test/CXX/basic/basic.scope/basic.scope.pdecl/p9.cpp b/test/CXX/basic/basic.scope/basic.scope.pdecl/p9.cpp
new file mode 100644
index 0000000000..e64b6752f0
--- /dev/null
+++ b/test/CXX/basic/basic.scope/basic.scope.pdecl/p9.cpp
@@ -0,0 +1,18 @@
+// RUN: %clang_cc1 -fsyntax-only -verify %s
+
+// Template type parameters.
+typedef unsigned char T;
+template<typename T = T> struct X0 { };
+template<> struct X0<unsigned char> { static const bool value = true; };
+int array0[X0<>::value? 1 : -1];
+
+// Non-type template parameters.
+const int N = 17;
+template<int N = N> struct X1 { };
+template<> struct X1<17> { static const bool value = true; };
+int array1[X1<>::value? 1 : -1];
+
+// Template template parameters.
+template<template<class> class X0 = X0> struct X2 { };
+template<> struct X2<X0> { static const bool value = true; };
+int array2[X2<>::value? 1 : -1];