https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102163
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Note this works: struct O { constexpr O() {} }; union _Variadic_union { constexpr _Variadic_union() : _M_rest() { } O _M_rest; }; constexpr _Variadic_union w; ----- CUT --- But this fails: struct O { constexpr O() {} }; union _Variadic_union { constexpr _Variadic_union() : _M_rest{} { } O _M_rest; }; constexpr _Variadic_union w;