aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDehao Chen <dehao@google.com>2013-10-24 16:27:57 +0000
committerDehao Chen <dehao@gcc.gnu.org>2013-10-24 16:27:57 +0000
commita2ad7995d0b9b2666ce77a310e39a29630df0747 (patch)
treecc69b3e8998c53a1c5495aab050edd18cfdd9f88
parent8170608bfc488f0dde37b332776e59c912244366 (diff)
downloadgcc-a2ad7995d0b9b2666ce77a310e39a29630df0747.zip
gcc-a2ad7995d0b9b2666ce77a310e39a29630df0747.tar.gz
gcc-a2ad7995d0b9b2666ce77a310e39a29630df0747.tar.bz2
devirt3.C: New test.
2013-10-24 Dehao Chen <dehao@google.com> * g++.dg/opt/devirt3.C: New test. From-SVN: r204022
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/g++.dg/opt/devirt3.C24
2 files changed, 28 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 7283360..5694dcd 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2013-10-24 Dehao Chen <dehao@google.com>
+
+ * g++.dg/opt/devirt3.C: New test.
+
2013-08-24 Tobias Burnus <burnus@net-b.de>
PR other/33426
diff --git a/gcc/testsuite/g++.dg/opt/devirt3.C b/gcc/testsuite/g++.dg/opt/devirt3.C
new file mode 100644
index 0000000..6738673
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/devirt3.C
@@ -0,0 +1,24 @@
+// { dg-do compile }
+// { dg-options "-O2" }
+
+class ert_RefCounter {
+ protected:
+ int refCounterE;
+ virtual ~ert_RefCounter() {}
+};
+
+class ebs_Object : virtual public ert_RefCounter {
+};
+
+class dpr_App : public ebs_Object {
+ public:
+ virtual void run();
+};
+
+class dpr_Job : public ebs_Object {};
+
+void dpr_run(ebs_Object& objectA) {
+ ((dpr_App&)objectA).run();
+ dpr_Job jobL;
+ dpr_run(jobL);
+}