https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61347
--- Comment #4 from Marc Glisse <glisse at gcc dot gnu.org> --- Created attachment 35231 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=35231&action=edit Overload of __distance Here is one way to do it (I will probably protect the new code with defined(__OPTIMIZE__) as well, if we keep __builtin_constant_p). (Looking at the generated code, I was surprised to notice that _M_hook and _M_unhook are in src, they seem rather small for that)