https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69241
Markus Trippelsdorf <trippels at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2016-01-12 Ever confirmed|0 |1 --- Comment #1 from Markus Trippelsdorf <trippels at gcc dot gnu.org> --- trippels@CFARM-IUT-TLSE3 ~ % cat mhtml_generation_manager.ii template <typename> class A; struct B { using pointer = int *; }; template <typename _CharT, typename = A<_CharT>> class basic_string { long _M_string_length; enum { _S_local_capacity = 15 } _M_local_buf[_S_local_capacity]; B::pointer _M_local_data; public: ~basic_string(); }; template <typename _CharT, typename _Traits, typename _Alloc> int operator<<(_Traits, basic_string<_CharT, _Alloc>); class C { basic_string<A<char>> _M_string; }; class D { C _M_stringbuf; }; class F { int stream; D stream_; }; class G { public: void operator&(int); }; class H { public: H(unsigned); H(H &&); bool m_fn1(); }; class I { void m_fn2(const int &&); static H m_fn3(const int &); }; template <typename Functor> void Bind(Functor); class J { public: static basic_string<char> m_fn4(); }; int a; void I::m_fn2(const int &&) { Bind(m_fn3); } H I::m_fn3(const int &) { !false ? (void)0 : G() & F() << J::m_fn4(); H b(a); if (b.m_fn1()) F(); } trippels@CFARM-IUT-TLSE3 ~ % g++ -c -O2 mhtml_generation_manager.ii mhtml_generation_manager.ii: In static member function ‘static H I::m_fn3(const int&)’: mhtml_generation_manager.ii:46:3: internal compiler error: in assign_temp, at function.c:961