// { dg-options "-O" } struct Outer { struct Inner { virtual bool f() = 0; }; void g(Inner &) const; }; inline void h(const Outer &o) { struct Local : public Outer::Inner { virtual bool f() {}; }; Local l; o.g(l); } void f(Outer &req) { h (req); }