http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60894
--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> --- Reduced (whether the function is virtual or not is irrelevant): struct B { struct S {}; }; struct D : B { using B::S; void doIt(struct S&); }; void D::doIt(struct S&) { }