https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99018
--- Comment #2 from David Stone <david at doublewise dot net> --- Simpler test case ``` struct s { constexpr ~s() { } }; constexpr bool f(s const (&)[1]) { return true; } static_assert(f({s()})); ``` Message ``` <source>:10:16: error: non-constant condition for static assertion 10 | static_assert(f({s()})); | ~^~~~~~~ <source>:10:22: error: '(((const s*)(&<anonymous>)) != 0)' is not a constant expression 10 | static_assert(f({s()})); | ^ Compiler returned: 1 ``` See it live: https://godbolt.org/z/YGYjfh You can get the same error by making the function parameter `std::initializer_list<s>` as well. Especially interesting in this reduction is that the code complains about a comparison, but there is no comparison anywhere in the code.