// Circular implicit declarations were causing errors
// { dg-do compile { target c++11 } }
struct Ray;
struct Vector
{
  virtual void f();		// make non-trivially-copyable
  Vector(const Ray &) ;
};
struct array
{
  Vector v;
};
struct Ray
{
  array a;
};
extern Ray r1;
Ray r2=r1;