(root)/
gcc-13.2.0/
gcc/
testsuite/
g++.dg/
cpp1y/
constexpr-104284-4.C
// PR c++/104284
// { dg-do run { target c++14 } }
// { dg-additional-options "-fchecking=2" }

struct S {
  char c{};
};

template<class>
constexpr void g ()
{
  S s1[]{{}};
  if (s1[0].c != '\0')
    __builtin_abort ();
  S s2[]{{'a'}};
  if (s2[0].c != 'a')
    __builtin_abort ();
#if __cpp_designated_initializers >= 201707L
  S s3[]{{.c = 'a'}};
  if (s3[0].c != 'a')
    __builtin_abort ();
#endif
  S s4[]{'a'};
  if (s4[0].c != 'a')
    __builtin_abort ();
  S s5[]{{{}}};
  if (s5[0].c != '\0')
    __builtin_abort ();
}

int
main ()
{
  g<int>();
}