view gcc/testsuite/g++.dg/opt/pr78373.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++/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>;