[libcxx-commits] [libcxx] [libc++] Remove _LIBCPP_COMPRESSED_PAIR/TRIPLE from shared_ptr (PR #200401)
Louis Dionne via libcxx-commits
libcxx-commits at lists.llvm.org
Wed Jun 3 08:03:51 PDT 2026
https://github.com/ldionne requested changes to this pull request.
Reasoning why this is correct: we're producing a new control block with a different layout, however that control block comes with its own vtable which knows how to handle it. Since all accesses to the control block are done through the `__shared_weak_count` base class and via the vtable, this works.
Using an ABI tag ensures that we produce a different type name for each release, which is a safe (although technically slightly overkill) way to ensure that we don't step on a previously used vtable.
https://github.com/llvm/llvm-project/pull/200401
More information about the libcxx-commits
mailing list