1 /* PR ipa/63470.C */
2 /* { dg-do compile } */
3 /* { dg-options "-O2 -finline-functions" } */
4 
5 class A
6 {
7 public:
8   virtual bool m_fn1 ();
9   virtual const char **m_fn2 (int);
10   virtual int m_fn3 ();
11 };
12 class FTjackSupport : A
13 {
14   ~FTjackSupport ();
15   bool m_fn1 ();
16   bool m_fn4 ();
17   const char **
m_fn2(int)18   m_fn2 (int)
19   {
20   }
21   int _inited;
22   int *_jackClient;
23   int _activePathCount;
24 }
25 
26 * a;
27 void fn1 (...);
28 void fn2 (void *);
29 int fn3 (int *);
~FTjackSupport()30 FTjackSupport::~FTjackSupport () { m_fn4 (); }
31 
32 bool
m_fn1()33 FTjackSupport::m_fn1 ()
34 {
35   if (!_jackClient)
36     return 0;
37   for (int i=0; _activePathCount; ++i)
38     if (m_fn2 (i))
39       fn2 (a);
40   if (m_fn3 ())
41     fn2 (a);
42   if (fn3 (_jackClient))
43     fn1 (0);
44 }
45 
46 bool
m_fn4()47 FTjackSupport::m_fn4 ()
48 {
49   if (_inited && _jackClient)
50     {
51       m_fn1 ();
52       return 0;
53     }
54 }
55