blob: b332691ec0bbc6a33ff2caac19c5bbd502288125 [file] [log] [blame]
// PR c++/78373
// { dg-do compile { target c++11 } }
struct A {
static A singleton;
};
struct B {
void m_fn2();
virtual int m_fn1();
};
struct D : B {
static int m_fn3(int, int, int, A) {
D &self = singleton;
self.m_fn2();
return 0;
}
static D singleton;
};
template <typename, typename> struct C { bool m_fn4() const; };
template <typename Base, typename Traits> bool C<Base, Traits>::m_fn4() const {
Traits::m_fn3(0, 0, 0, Base::singleton);
return true;
}
template struct C<A, D>;