https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64521
Bug ID: 64521 Summary: [4.9/5 Regression] ICE with -frepo Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: jakub at gcc dot gnu.org CC: jason at gcc dot gnu.org template <typename H> struct J { J(H); }; template <unsigned long, typename...> struct K; template <unsigned long I> struct K<I> {}; template <unsigned long I, typename H, typename... T> struct K<I, H, T...> : K<I + 1, T...>, J<H> { K(const H &p1, const T &... p2) : K<I + 1, T...>(p2...), J<H>(p1) {} }; template <typename... E> struct C : K<0, E...> { C(const E &... p1) : K<0, E...>(p1...) {} }; template <typename> struct A { A() = default; }; struct M; template <typename> struct L { struct B { template <typename> static M *__test(...); typedef A<int> _Del; typedef decltype(__test<_Del>()) type; }; C<typename B::type, A<M>> _M_t; L(typename B::type) : _M_t(0, A<M>()) {} }; struct M {}; void foo() { L<int>(new M); } ICEs starting with r206182 with -frepo -std=c++11. Doesn't ICE without -frepo or with r206181 or earlier.