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.

Reply via email to