Rebase.
[official-gcc.git] / gcc / testsuite / g++.dg / ipa / pr59176.C
blobd576bc3ba5a139427b414ff922eb99dd822a07f6
1 /* { dg-do compile } */
2 /* { dg-options "-O3" } */
4 template <class> class A {
5 protected:
6   void m_fn2();
7   ~A() { m_fn2(); }
8   virtual void m_fn1();
9 };
11 class D : A<int> {};
12 template <class Key> void A<Key>::m_fn2() {
13   m_fn1();
14   m_fn1();
15   m_fn1();
18 #pragma interface
19 class B {
20   D m_cellsAlreadyProcessed;
21   D m_cellsNotToProcess;
23 public:
24   virtual ~B() {}
25   void m_fn1();
28 class C {
29   unsigned long m_fn1();
30   B m_fn2();
31   unsigned long m_fn3();
33 unsigned long C::m_fn1() {
34 CellHierarchy:
35   m_fn2().m_fn1();
38 unsigned long C::m_fn3() {
39 CellHierarchy:
40   m_fn2().m_fn1();