aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorH.J. Lu <hongjiu.lu@intel.com>2014-12-02 12:47:29 +0000
committerH.J. Lu <hjl@gcc.gnu.org>2014-12-02 04:47:29 -0800
commit88936a2bfd6b33aa5fa3c01cbe973c362d4a06c2 (patch)
tree6897b3ae29bb5b9d2b5f64ebac42efe4f1e5145c /gcc
parentffc510234e3a519c73d03af6c331c7bbb9599193 (diff)
downloadgcc-88936a2bfd6b33aa5fa3c01cbe973c362d4a06c2.zip
gcc-88936a2bfd6b33aa5fa3c01cbe973c362d4a06c2.tar.gz
gcc-88936a2bfd6b33aa5fa3c01cbe973c362d4a06c2.tar.bz2
Add a test for PR ipa/63814
PR ipa/63814 * g++.dg/ipa/pr63814.C: New test. From-SVN: r218268
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/ipa/pr63814.C29
2 files changed, 34 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index a17cc6c..1410f10 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2014-12-02 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ipa/63814
+ * g++.dg/ipa/pr63814.C: New test.
+
2014-12-02 Wilco Dijkstra <wilco.dijkstra@arm.com>
* gcc.target/aarch64/remat1.c: New testcase.
diff --git a/gcc/testsuite/g++.dg/ipa/pr63814.C b/gcc/testsuite/g++.dg/ipa/pr63814.C
new file mode 100644
index 0000000..15a7dda
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ipa/pr63814.C
@@ -0,0 +1,29 @@
+// { dg-do run { target fpic } }
+// { dg-options "-O3 -fpic" }
+
+struct CBase {
+ virtual void BaseFunc () {}
+};
+
+struct MMixin {
+ virtual void * MixinFunc (int, int) = 0;
+};
+
+struct CExample: CBase, public MMixin
+{
+ void *MixinFunc (int arg, int arg2)
+ {
+ return this;
+ }
+};
+
+void *test (MMixin & anExample)
+{
+ return anExample.MixinFunc (0, 0);
+}
+
+int main ()
+{
+ CExample c;
+ return (test (c) != &c);
+}