https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91356
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |WONTFIX --- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Niels Möller from comment #2) > My impression was that C++ ABI is under the control of compiler and C++ > standard library, and that there is no such thing as a standard C++ ABI. See http://itanium-cxx-abi.github.io/cxx-abi/ > For specific types defined by the GNU standard C++ library, it may also be > possible to add any needed G++ specific attributes in library headers to > tell the compiler to depart from the "standard" ABI. Not without changing the existing ABI. > > In any case, how common is it to have a pointless non-inline baz function > > which does nothing but forward to another non-inline function? > > In my experience (mainly from working on the webrtc.org code, where > implementation inheritance is discouraged), it's common with implementations > of interface classes consisting of almost trivial implementations of the > interface's virtual functions, which only setup the correct arguments for > calling a non-inlined (and possibly virtual) method on some member to do the > real work. Why wouldn't you take unique_ptr<T>&& instead of passing by value? I'm closing this bug, as there's nothing libstdc++ can do here.