https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87525
--- Comment #28 from Jan Hubicka <hubicka at gcc dot gnu.org> --- and forgot to mention, one variant would be to 1) document that gnu_inline artifical always_inline is special and may have different semantics than offline function but it is also the only case 2) throw them away after early inlining. My undrestanding of Jakub comment #16 is that probably we do not want to go this route. This would be relatively easy to implement. On the same time I think GCC9 should be quite safe for fortify source with what we have so far. I will work on the support for multiple definitions of one function. My original motivation was to support differnt variant of C++ comdats so different optimization flags do not prevent us from inlining. My initial tests however shown that I do need to teach inliner heuristics how to correctly calculate unit size in this case as it happens suprisingly often for Firefox.