summaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2007-09-24 16:54:34 -0400
committerJason Merrill <jason@gcc.gnu.org>2007-09-24 16:54:34 -0400
commit7a20d68989dac61d98b12b5d32404f04021d211f (patch)
treeb77c7efb5fdcf917f41b024686f780683d8ff1ff /gcc/testsuite
parent7b7bdf67e021444850352aebe14b288aca4c29c7 (diff)
downloadgcc-7a20d68989dac61d98b12b5d32404f04021d211f.tar.gz
re PR c++/33239 (internal compiler error in instantiate_class_template, at cp/pt.c:5666)
PR c++/33239 * pt.c (resolve_typename_type): Don't look things up in the original template if it would mean losing template arguments. From-SVN: r128725
Diffstat (limited to 'gcc/testsuite')
-rw-r--r--gcc/testsuite/g++.dg/template/memtmpl3.C24
1 files changed, 24 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/template/memtmpl3.C b/gcc/testsuite/g++.dg/template/memtmpl3.C
new file mode 100644
index 00000000000..583155ea760
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/memtmpl3.C
@@ -0,0 +1,24 @@
+// PR c++/33239
+
+struct null_type;
+
+template<typename T1, typename T2>
+struct tuple_impl
+{
+ template<typename U>
+ struct append
+ {
+ typedef tuple_impl<U, null_type> type;
+ };
+
+ int data;
+};
+
+template<typename T1>
+class tuple
+: public tuple_impl<T1, null_type>::template append<T1>::type
+{
+ using tuple_impl<T1, null_type>::template append<T1>::type::data;
+};
+
+tuple<int> my_tuple;