https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118285
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org --- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Reduced testcase: namespace std { template <typename T> struct initializer_list { T *_M_array; __SIZE_TYPE__ _M_len; }; } struct A { char *a; union { char b[8]; long c; }; constexpr A (const char *x) : a(b) { for (int i = 0; i < 8; ++i) b[i] = 0; } constexpr ~A () { if (!foo ()) bar (c); } constexpr bool foo () { char *x = a; if (x == b) return true; return false; } constexpr void bar (long) {} }; constexpr void baz (std::initializer_list<A>) { } constexpr bool qux () { baz ({""}); return true; } static_assert (qux (), "");