| /* PR ipa/63470.C */ |
| /* { dg-do compile } */ |
| /* { dg-options "-O2 -finline-functions -Wno-return-type" } */ |
| |
| class A |
| { |
| public: |
| virtual bool m_fn1 (); |
| virtual const char **m_fn2 (int); |
| virtual int m_fn3 (); |
| }; |
| class FTjackSupport : A |
| { |
| ~FTjackSupport (); |
| bool m_fn1 (); |
| bool m_fn4 (); |
| const char ** |
| m_fn2 (int) |
| { |
| return 0; |
| } |
| int _inited; |
| int *_jackClient; |
| int _activePathCount; |
| } |
| |
| * a; |
| void fn1 (...); |
| void fn2 (void *); |
| int fn3 (int *); |
| FTjackSupport::~FTjackSupport () { m_fn4 (); } |
| |
| bool |
| FTjackSupport::m_fn1 () |
| { |
| if (!_jackClient) |
| return 0; |
| for (int i=0; _activePathCount; ++i) |
| if (m_fn2 (i)) |
| fn2 (a); |
| if (m_fn3 ()) |
| fn2 (a); |
| if (fn3 (_jackClient)) |
| fn1 (0); |
| } |
| |
| bool |
| FTjackSupport::m_fn4 () |
| { |
| if (_inited && _jackClient) |
| { |
| m_fn1 (); |
| return 0; |
| } |
| } |