Committed.

Richard.

2012-05-07  Richard Guenther  <rguent...@suse.de>

        PR lto/42987
        * g++.dg/lto/pr42987_0.C: New testcase.
        * g++.dg/lto/pr42987_1.C: Likewise.

Index: gcc/testsuite/g++.dg/lto/pr42987_0.C
===================================================================
--- gcc/testsuite/g++.dg/lto/pr42987_0.C        (revision 0)
+++ gcc/testsuite/g++.dg/lto/pr42987_0.C        (revision 0)
@@ -0,0 +1,22 @@
+// { dg-lto-do run }
+// { dg-lto-options { { -flto -g } { -flto -flto-partition=none -g } } }
+
+#include <typeinfo>
+
+struct B {
+  virtual void b() {}
+};
+
+static B* f() {
+  struct D : public B {
+  };
+
+  return new D;
+}
+
+extern B* g();
+
+int main () {
+  if (typeid (*f()) == typeid (*g()))
+    return 1;
+}
Index: gcc/testsuite/g++.dg/lto/pr42987_1.C
===================================================================
--- gcc/testsuite/g++.dg/lto/pr42987_1.C        (revision 0)
+++ gcc/testsuite/g++.dg/lto/pr42987_1.C        (revision 0)
@@ -0,0 +1,14 @@
+struct B {
+  virtual void b() {}
+};
+
+static B* f() {
+  struct D : public B {
+  };
+
+  return new D;
+}
+
+B* g() {
+  return f();
+}

Reply via email to