[libcxx-commits] [libcxx] [libc++] Take the ABI break for `std::list`'s pointer UB unconditionally (PR #100585)

Louis Dionne via libcxx-commits libcxx-commits at lists.llvm.org
Thu Aug 15 08:55:36 PDT 2024


================
@@ -271,19 +271,10 @@ struct __list_node_pointer_traits {
   typedef __rebind_pointer_t<_VoidPtr, __list_node<_Tp, _VoidPtr> > __node_pointer;
   typedef __rebind_pointer_t<_VoidPtr, __list_node_base<_Tp, _VoidPtr> > __base_pointer;
 
-#if defined(_LIBCPP_ABI_LIST_REMOVE_NODE_POINTER_UB)
-  typedef __base_pointer __link_pointer;
-#else
-  typedef __conditional_t<is_pointer<_VoidPtr>::value, __base_pointer, __node_pointer> __link_pointer;
----------------
ldionne wrote:

The PR description/commit message should re-mention what the ABI break is, in particular the fact that it only affects fancy pointer types. It should also mention how the ABI is being broken.

https://github.com/llvm/llvm-project/pull/100585


More information about the libcxx-commits mailing list