/* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-optimized -fno-devirtualize-speculatively" } */
struct S
{
  S();
  virtual inline void foo ()
  {
    foo();
  }
};

void
B ()
{
  S().foo ();
}
/* We should inline foo and devirtualize call to foo in the inlined version.  */
// { dg-final { scan-tree-dump-times "OBJ_TYPE_REF" 1 "optimized" } }
// { dg-final { cleanup-tree-dump "optimized" } }
