------- Comment #5 from pinskia at gcc dot gnu dot org 2008-09-13 03:52 ------- Here is a reduced testcase for the variadic-tuple.C failure. Compile with --param ggc-min-expand=0 --param ggc-min-heapsize=0 -w:
namespace std __attribute__ ((__visibility__ ("default"))) { template<typename _CharT> class basic_string; typedef basic_string<char> string; template<typename _CharT> struct basic_string { void _M_destroy() throw(); basic_string(const char* __s); ~basic_string() { _M_destroy(); } }; template<typename _CharT> void basic_string<_CharT>:: _M_destroy() throw () { } extern template class basic_string<char>; }; template<typename... Values> class tuple; template<> class tuple<> { }; template<typename Head, typename... Tail> struct tuple<Head, Tail...> : private tuple<Tail...> { typedef tuple<Tail...> inherited; tuple() { } template<typename... VValues> tuple(const tuple<VValues...>& other) : m_head(other.head()) ,inherited(other.tail()) { } const Head &head() const { } const inherited& tail() const { } Head m_head; }; int main() { tuple<int, float, const char*> t3a; tuple<long, double, std::string> t3b(t3a); } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37500