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(); +}