aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Trippelsdorf <markus@trippelsdorf.de>2015-01-12 07:48:50 +0000
committerMarkus Trippelsdorf <trippels@gcc.gnu.org>2015-01-12 07:48:50 +0000
commit844c944b8c6c1d7140f210d43d59883da3c08e38 (patch)
treeef34f0b3f4b1abf6547b2d8971176706757526bf
parente3bde69aead17eb0e42a6f9c542f0033d642ba74 (diff)
downloadgcc-844c944b8c6c1d7140f210d43d59883da3c08e38.zip
gcc-844c944b8c6c1d7140f210d43d59883da3c08e38.tar.gz
gcc-844c944b8c6c1d7140f210d43d59883da3c08e38.tar.bz2
ipa/63470 add testcase
2015-01-11 Markus Trippelsdorf <markus@trippelsdorf.de> PR ipa/63470 * ipa/pr63470.C: New testcase. From-SVN: r219445
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/ipa/pr63470.C54
2 files changed, 59 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index b3b6b59..d673e12 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2015-01-11 Markus Trippelsdorf <markus@trippelsdorf.de>
+
+ PR ipa/63470
+ * ipa/pr63470.C: New testcase.
+
2015-01-11 Janus Weil <janus@gcc.gnu.org>
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 0000000..e6fa73b
--- /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;
+ }
+}