[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