view gcc/testsuite/g++.dg/ipa/pr64059.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

// { dg-options "-r -O2 -flto -fno-devirtualize" }
// { dg-require-effective-target lto }

class A;
class B
{
public:
  A *operator->();
};
class C
{
public:
  virtual void m_fn1 ();
};
class A
{
public:
  C *m_fn2 ();
};
class D
{
public:
  void
  m_fn3 ()
  {
    list_m->m_fn2 ()->m_fn1 ();
  }
  B list_m;
};

class F
{
public:
  D m_fn4 ();
};
class G
{
public:
  F m_fn5 (int, int);
};
class H
{
public:
  void
  m_fn6 ()
  {
    fieldEngine_m.m_fn5 (0, 0).m_fn4 ().m_fn3 ();
  }
  G fieldEngine_m;
};

void
fn1 (H a)
{
  a.m_fn6 ();
}