// PR c++/58664
// { dg-do compile { target c++11 } }

struct F;          // { dg-message "forward declaration" }

union U            // { dg-message "not complete" }
{
  U u[1] = { 0 };  // { dg-error "5:field .u. has incomplete type" }
};

template<typename T>
union UT           // { dg-message "not complete" }
{
  UT u[1] = { 0 }; // { dg-error "incomplete type" }
};

template union UT<int>;

union UF
{
  F u[1] = { 0 };  // { dg-error "5:field .u. has incomplete type" }
};

template<typename T>
union UFT
{
  F u[1] = { 0 };  // { dg-error "5:field .u. has incomplete type" }
};

template union UFT<int>;

struct S           // { dg-message "not complete" }
{
  S s[1] = { 0 };  // { dg-error "5:field .s. has incomplete type" }
};

template<typename T>
struct ST          // { dg-message "not complete" }
{
  ST s[1] = { 0 }; // { dg-error "incomplete type" }
};

template class ST<int>;

struct SF
{
  F s[1] = { 0 };  // { dg-error "5:field .s. has incomplete type" }
};

template<typename T>
struct SFT
{
  F s[1] = { 0 };  // { dg-error "5:field .s. has incomplete type" }
};

template class SFT<int>;
