From 844c944b8c6c1d7140f210d43d59883da3c08e38 Mon Sep 17 00:00:00 2001 From: Markus Trippelsdorf Date: Mon, 12 Jan 2015 07:48:50 +0000 Subject: [PATCH] ipa/63470 add testcase 2015-01-11 Markus Trippelsdorf PR ipa/63470 * ipa/pr63470.C: New testcase. From-SVN: r219445 --- gcc/testsuite/ChangeLog | 5 +++ gcc/testsuite/g++.dg/ipa/pr63470.C | 54 ++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 gcc/testsuite/g++.dg/ipa/pr63470.C diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index b3b6b59091d..d673e12f888 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2015-01-11 Markus Trippelsdorf + + PR ipa/63470 + * ipa/pr63470.C: New testcase. + 2015-01-11 Janus Weil PR fortran/63733 diff --git a/gcc/testsuite/g++.dg/ipa/pr63470.C b/gcc/testsuite/g++.dg/ipa/pr63470.C new file mode 100644 index 00000000000..e6fa73bcd4c --- /dev/null +++ b/gcc/testsuite/g++.dg/ipa/pr63470.C @@ -0,0 +1,54 @@ +/* PR ipa/63470.C */ +/* { dg-do compile } */ +/* { dg-options "-O2 -finline-functions" } */ + +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) + { + } + 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; + } +} -- 2.30.2