(root)/
gcc-13.2.0/
gcc/
testsuite/
g++.dg/
ipa/
pr46053.C
/* { dg-do run } */
/* { dg-options "-O -fipa-cp -fno-early-inlining"  } */

extern "C" void abort ();

struct A
{
  virtual void foo () = 0;
};

struct B : A
{
  virtual void foo () = 0;
};

struct C : A
{
};

struct D : C, B
{
  int i;
  D () : i(0xaaaa) {}
  virtual void foo ()
  {
    if (i != 0xaaaa)
      abort();
  }
};

static inline void bar (B &b)
{
  b.foo ();
}

int main()
{
  D d;
  bar (d);
  return 0;
}