// PR c++/4286: We were crashing when trying to set up the class bindings in
// g(), because xref wanted the mangled name, which breaks inside a template.

// Of course, the offending code is actually ill-formed anyway, so check
// for the error.  Also check that it's formatted properly.

struct A
{
  template<class T> void f();
};

template<class T> void A::f()
{
  struct B
  {
    void g() {}
    static int x;	// { dg-error "static.*int A::f\\(\\)::B::x" }
  };
}

int main ()
{
  A a;
  a.f<int> ();
}
