https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86590
--- Comment #40 from Jan Hubicka <hubicka at gcc dot gnu.org> --- As discussed with Jason, problem with _M_create not seen by middle-end is actually due to C++ standard. Explicit instantiations prevents implicit ones for non-inline functions, see discussion in PR39242. Without understanding the side-effects we can not optimize, so I think we want to declare it inline with Jakub's not-really-inline-hint attribute?