view gcc/testsuite/g++.dg/template/local1.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
line wrap: on
line source

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