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) | ~~~~~~~~~~~~~~~~~^~~~