summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/opt/inline17.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/g++.dg/opt/inline17.C')
-rw-r--r--gcc/testsuite/g++.dg/opt/inline17.C80
1 files changed, 80 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/opt/inline17.C b/gcc/testsuite/g++.dg/opt/inline17.C
new file mode 100644
index 000000000..a42233d57
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/inline17.C
@@ -0,0 +1,80 @@
+// PR tree-optimization/47420
+// Testcase by Yu Simin <silver24k@gmail.com>
+
+// { dg-do compile }
+// { dg-options "-O2" }
+
+class fooControlBase
+{
+public:
+ fooControlBase() { }
+
+ virtual ~fooControlBase();
+};
+
+class fooControl : public fooControlBase
+{
+public:
+ fooControl() { }
+};
+
+class sfTextEntryBase
+{
+public:
+ sfTextEntryBase() { }
+ virtual ~sfTextEntryBase();
+};
+
+class sfTextEntry : public sfTextEntryBase
+{
+public:
+ sfTextEntry()
+ {
+ }
+};
+
+class sfTextAreaBase
+{
+public:
+ sfTextAreaBase() { }
+ virtual ~sfTextAreaBase() { }
+
+protected:
+};
+
+
+class sfTextCtrlBase : public fooControl,
+ public sfTextAreaBase,
+ public sfTextEntry
+{
+public:
+
+
+
+ sfTextCtrlBase() { }
+ virtual ~sfTextCtrlBase() { }
+};
+
+class sfTextCtrl : public sfTextCtrlBase
+{
+public:
+ sfTextCtrl(void* parent)
+ {
+ Create(parent);
+ }
+ virtual ~sfTextCtrl();
+
+ bool Create(void *parent);
+
+
+};
+
+sfTextCtrl* CreateTextCtrl()
+{
+ return new sfTextCtrl(0);
+}
+
+void foo ()
+{
+ new sfTextCtrl(0);
+}