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

Reply via email to