https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116682
Patrick Palka <ppalka at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ppalka at gcc dot gnu.org --- Comment #11 from Patrick Palka <ppalka at gcc dot gnu.org> --- Seems there's another bug, unrelated to local enums. If we replace the problematic local enum: @@ -67341,7 +67341,7 @@ public: ZuUnroll::all<WrRefs::N>([this, &o, &ok](auto I) { if (!ok) return; using Field = ZuType<I, Fields>; - enum { NDP = GetNDP<Field>{} }; + static constexpr int NDP = GetNDP<Field>{}; if constexpr (Field::Code == Float) ok = ok && m_wrRefs.template p<I>()->write(Field::get(o)); else if constexpr (Field::Code == Fixed) then we instead ICE from expand_expr_real_1.