https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101371
Marek Polacek <mpolacek at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |mpolacek at gcc dot gnu.org --- Comment #2 from Marek Polacek <mpolacek at gcc dot gnu.org> --- Reduced, even g++ 7 ICEs. We only ICE with -std=c++14. struct berry_set_CX; template <int _Nm> struct __array_traits { typedef berry_set_CX _Type[_Nm]; }; template <int _Nm> struct array { typename __array_traits<_Nm>::_Type _M_elems; }; struct _Base_bitset { long _M_w; }; struct berry_set_CX { _Base_bitset bset; constexpr berry_set_CX() : bset() {} constexpr berry_set_CX(berry_set_CX &rhs) : bset(rhs.bset) {} }; struct bersets_by_citrus_CX { array<8> berrysets; }; struct entree0_CX { constexpr entree0_CX(bersets_by_citrus_CX) {} }; struct berrybox_CX { constexpr entree0_CX make_entree() const { bersets_by_citrus_CX bsbc{}; return bsbc; } berrybox_CX(berry_set_CX); }; void init() { berry_set_CX fixed; berrybox_CX nu_cs0(fixed); entree0_CX pas = nu_cs0.make_entree(); }