// PR c++/46626
// { dg-do run { target c++11 } }
struct A
{
  virtual void f () = 0;
  virtual ~A () { }
};
struct B : A
{
  virtual void f () { }
};
static void
foo (A *a)
{
  a->f ();
}
int
main ()
{
  B b;
  foo (&b);
  return 0;
}
// PR c++/46626
// { dg-do run { target c++11 } }
struct A
{
  virtual void f () = 0;
  virtual ~A () { }
};
struct B : A
{
  virtual void f () { }
};
static void
foo (A *a)
{
  a->f ();
}
int
main ()
{
  B b;
  foo (&b);
  return 0;
}