diff options
author | Jason Merrill <jason@redhat.com> | 2007-09-24 16:54:34 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2007-09-24 16:54:34 -0400 |
commit | 7a20d68989dac61d98b12b5d32404f04021d211f (patch) | |
tree | b77c7efb5fdcf917f41b024686f780683d8ff1ff /gcc/testsuite | |
parent | 7b7bdf67e021444850352aebe14b288aca4c29c7 (diff) | |
download | gcc-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.C | 24 |
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; |