[Bug c++/101371] constexpr expansions trigger internal Compiler Error

mpolacek at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Jul 8 13:50:32 GMT 2021


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();
}


More information about the Gcc-bugs mailing list