view gcc/testsuite/g++.dg/torture/pr83619.C @ 131:84e7813d76e9

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

// { dg-do compile }
int a;
class d
{
public:
  virtual unsigned c ();
};
class e : public d
{
};
class i
{
  void h ();

public:
  void
  operator= (e *f)
  {
    j<int>::c (f);
    h ();
  }
  template <class> struct j
  {
    static void
    c (e *g)
    {
      g->c ();
    }
  };
};
class k;
class l
{
public:
  l (int);
  k *operator-> ();
};
class m final : e
{
  unsigned c ();
};
class k
{
public:
  virtual int o (e *) = 0;
};
class H : d, k
{
  int o (e *);
  i n;
};
unsigned
m::c ()
{
  l b = 0;
  b->o (this);
  return a;
}
int
H::o (e *p)
{
  n = p;
  return a;
}