]> granicus.if.org Git - clang/commitdiff
Add test case that I forgot to commit with r107354 (the implementation
authorDouglas Gregor <dgregor@apple.com>
Thu, 1 Jul 2010 00:21:50 +0000 (00:21 +0000)
committerDouglas Gregor <dgregor@apple.com>
Thu, 1 Jul 2010 00:21:50 +0000 (00:21 +0000)
of C++ DR481).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107359 91177308-0d34-0410-b5e6-96231b3b80d8

test/CXX/basic/basic.scope/basic.scope.pdecl/p9.cpp [new file with mode: 0644]

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 (file)
index 0000000..e64b675
--- /dev/null
@@ -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];