// { dg-do assemble } // GROUPS passed old-abort class foo { public: virtual foo &operator <<(foo &(foo::*)(foo &)); }; foo &foo::operator<<(foo &(foo::*manip)(foo &)) { (this->*manip)(*this); return *this; }