summaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>1999-09-02 17:29:11 +0000
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>1999-09-02 17:29:11 +0000
commit0dcdeb0d5d7a31795429b1a1d60c76c68dd89d46 (patch)
tree492aa30784ce56f2ba6a183212d10e2c1ca60463 /gcc/testsuite
parent393266330fa6fc95d0ec14fe390c15ee02fd2b54 (diff)
downloadgcc-0dcdeb0d5d7a31795429b1a1d60c76c68dd89d46.tar.gz
* decl2.c (arg_assoc_template_arg): New prototype. New function.
(arg_assoc_class): Use arg_assoc_template_arg for template arguments. (arg_assoc): Likewise. * pt.c (mangle_class_name_for_template): Allow member template template arguments. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29060 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite')
-rw-r--r--gcc/testsuite/g++.old-deja/g++.pt/ttp57.C45
-rw-r--r--gcc/testsuite/g++.old-deja/g++.pt/ttp58.C48
2 files changed, 93 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp57.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp57.C
new file mode 100644
index 00000000000..7c7c9386f8a
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.pt/ttp57.C
@@ -0,0 +1,45 @@
+// Build don't link:
+// Origin: Alex Samuel <samuel@codesourcery.com>
+
+namespace NS
+{
+
+template <class T, int V>
+struct Base
+{
+};
+
+template <class T>
+struct Z
+{
+ const static int value_ = false;
+};
+
+template <class T>
+struct A :
+ public Base <T, Z<T>::value_>
+{
+};
+
+template <class T>
+void f(T)
+{
+}
+
+}
+
+
+template <template <class T> class U>
+struct B
+{
+};
+
+
+int
+main ()
+{
+ B<NS::A> ba;
+ f (ba); // Koenig lookup
+ return 0;
+}
+
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp58.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp58.C
new file mode 100644
index 00000000000..662058037b7
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.pt/ttp58.C
@@ -0,0 +1,48 @@
+// Build don't link:
+// Origin: Alex Samuel <samuel@codesourcery.com>
+
+namespace NS
+{
+
+template <class T, int V>
+struct Base
+{
+};
+
+template <class T>
+struct Z
+{
+ const static int value_ = false;
+};
+
+class Outer
+{
+ template <class T>
+ struct A :
+ public Base <T, Z<T>::value_>
+ {
+ };
+};
+
+template <class T>
+void f(T)
+{
+}
+
+}
+
+
+template <template <class T> class U>
+struct B
+{
+};
+
+
+int
+main ()
+{
+ B<NS::Outer::A> ba;
+ f (ba); // Koenig lookup
+ return 0;
+}
+