[libc++] Disentangle std::pointer_safety
authorLouis Dionne <ldionne.2@gmail.com>
Tue, 13 Apr 2021 20:43:42 +0000 (16:43 -0400)
committerLouis Dionne <ldionne.2@gmail.com>
Mon, 3 May 2021 18:33:49 +0000 (14:33 -0400)
commit49e7be2e5ba1759ae9d4ce9843ce2467cf7823a5
tree1142cdb871bf41987bb5d63a2ab9ca4b45a7deee
parent1d299252dd52ade0e87485be29443aa69be9e910
[libc++] Disentangle std::pointer_safety

This patch gets rid of technical debt around std::pointer_safety which,
I claim, is entirely unnecessary. I don't think anybody has used
std::pointer_safety in actual code because we do not implement the
underlying garbage collection support. In fact, P2186 even proposes
removing these facilities entirely from a future C++ version. As such,
I think it's entirely fine to get rid of complex workarounds whose goals
were to avoid breaking the ABI back in 2017.

I'm putting this up both to get reviews and to discuss this proposal for
a breaking change. I think we should be comfortable with making these
tiny breaks if we are confident they won't hurt anyone, which I'm fairly
confident is the case here.

Differential Revision: https://reviews.llvm.org/D100410
12 files changed:
libcxx/docs/ReleaseNotes.rst
libcxx/include/__config
libcxx/include/__memory/pointer_safety.h
libcxx/include/memory
libcxx/lib/abi/x86_64-apple-darwin.libcxxabi.v1.stable.exceptions.no_new_in_libcxx.abilist
libcxx/lib/abi/x86_64-unknown-linux-gnu.libcxxabi.v1.stable.exceptions.no_new_in_libcxx.abilist
libcxx/src/memory.cpp
libcxx/test/libcxx/utilities/memory/util.dynamic.safety/get_pointer_safety_cxx03.pass.cpp [deleted file]
libcxx/test/libcxx/utilities/memory/util.dynamic.safety/get_pointer_safety_new_abi.pass.cpp [deleted file]
libcxx/test/std/utilities/memory/util.dynamic.safety/declare_no_pointers.pass.cpp
libcxx/test/std/utilities/memory/util.dynamic.safety/declare_reachable.pass.cpp
libcxx/test/std/utilities/memory/util.dynamic.safety/get_pointer_safety.pass.cpp