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 (), "");