https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92439

Andrew Sutton <andrew.n.sutton at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |andrew.n.sutton at gmail dot 
com

--- Comment #1 from Andrew Sutton <andrew.n.sutton at gmail dot com> ---
Confirmed. The patch here fixes the crash, but there are other issues that
prevent this from compiling.

https://gcc.gnu.org/ml/gcc-patches/2019-11/msg01034.html

In particular, the nested value of:

  template <typename ...> struct has_form_of_list { enum : bool { value = false
}; };

cannot be used as an atomic constraint as it doesn't have type bool. That needs
to be a static constexpr bool variable.

Fixing that, you get this:

x.cpp:37:28: error: use of function ‘constexpr bool
detail::dont_overlap(unsigned int, const T&, const Ts& ...) [with T =
list<bf<3, 2>, bf<0, 3> >; Ts = {}]’ with unsatisfied constraints
   37 |         return dont_overlap(all_prev_masks | this_mask, ts...);
      |                ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

... because ...

x.cpp:23:30: error: ‘mask_of_ones’ is not a member of ‘list<bf<3, 2>, bf<0, 3>
>’
   23 |     requires(T::mask_of_ones >=0)
      |             ~~~~~~~~~~~~~~~~~^~~~

Reply via email to