// 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> ();
}
