https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87525
--- Comment #27 from Jan Hubicka <hubicka at gcc dot gnu.org> --- Well, we can't throw away all extern inlines as that would penalize C++ performance quite a lot (it is ipa-inliner that decides on inlining of most of keyed methods). The real fix is to special case GNU extern inlines and avoid merging of them which needs support for a symbol with multiple definitions (so a symbol can be both syntactic alias and function definition) and then handle it right everywhere in the IPA optimization queue (make IPA optimizers to understand that every copy may have different semantics but it is still interchangeable for the offline variant). I have patches for that but the first part of this, but it is definitly for next stage1.