On 3/14/25 9:28 AM, Nathaniel Shead wrote:
Bootstrapped and regtested on x86_64-pc-linux-gnu, OK for trunk?
Alternatively, could still mark gnu_inline functions as non-vague, we
just need to do so more aggressively; but given this is specifically to
solve a modules issue I felt may as well keep it confined to there given
your previous comments.
I think we want a function import_interface_unknown or import_might_emit
or something that is vague_linkage_p with additional restrictions.
As I think of it, an explicitly instantiated template is still vague
linkage, but vague linkage is subject to various heuristics and controls
like explicit instantiation and the ABI tinfo rule. The ABI spec
recently drifted away from this interpretation toward vague linkage
meaning COMDAT, but I think that was a conceptual mistake.
gnu_inline seems borderline to me, but I lean toward the change in this
patch to treat all inlines as vague linkage and check gnu_inline in the
new function.
Jason