------- Comment #5 from pcarlini at suse dot de 2007-09-08 02:22 ------- Now the ICE is at line 6586. Can be triggered with this smaller snippet:
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, typename T2> 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, int> my_tuple; --------- Note that if I remove the now redundant template parameter T2 of tuple and instantiate with typle<int>, we get immediately a bit of additional info: 33239_p2.C: In instantiation of tuple<int>: 33239_p2.C:22: instantiated from here 33239_p2.C:19: internal compiler error: tree check: accessed elt 2 of tree_vec with 1 elts in tsubst, at cp/pt.c:8601 -- pcarlini at suse dot de changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |pcarlini at suse dot de http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33239