Skip to content

Export-loss ownership: inline-copy proxy and template-specialization owner remain open (see export-loss-ownership-root-cause.md)

Index: Known gaps

Status (re-verified 2026-10-09 at 456989f): OPEN. This is a pointer stub to export-loss-ownership-root-cause.md. It still lists two open items: is_inline is used as a proxy, and there is no Itanium type decoder for specialization owners. Not re-verified in code beyond that.

func_removed_elf_only's ctor/dtor exemption resolved its owner through an index keyed by the unqualified record name, and then treated "the owning class is still declared" as a reason to drop a concrete export loss. Both were falsified by measurement (a loader running a client built once against OLD), and the mislabelled -O0 vs -O2 corpus entry the exemption was built to satisfy was itself a true positive under its own header. Full account, the runtime controls, the intentional semantic change and the remaining gaps: export-loss-ownership-root-cause.md. What is still open there: the inline-definition fact is read from the declaration's is_inline, which is a fact about declaration linkage, not proof that a consumer emitted its own copy; and the recovered owner path for a class-template specialization names only the primary template, since this repository has no Itanium type decoder.