blob: 57011324889e9fc53cbf222a56a222277fda7812 [file] [log] [blame]
// { 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 ();
}