// { dg-lto-do assemble } // { dg-lto-options {{-flto}} } struct Foo { virtual void func() = 0; }; struct Bar { Foo *field; void func2(); }; struct Baz { Bar &bar(); Baz(); }; struct Zonk { virtual ~Zonk() { } virtual void func3() = 0; }; void Mumble(Zonk *) { } extern "C" { void __attribute__ ((nothrow)) __cxa_pure_virtual() { Baz().bar().func2(); } }