https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117966
--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> --- The code compiles fine if the variable is in main(), just not as a global: #include <array> #include <span> struct A { constexpr A(std::span<const unsigned char>) {} }; int main() { constexpr A val{std::array<unsigned char, 2>{0x11, 0x22}}; }