[libc++] Generalize the customizeable assertion handler
authorLouis Dionne <ldionne.2@gmail.com>
Mon, 25 Jul 2022 17:19:51 +0000 (13:19 -0400)
committerLouis Dionne <ldionne.2@gmail.com>
Tue, 26 Jul 2022 11:42:38 +0000 (07:42 -0400)
commit7de5aca84c541edd9f11b9316cb61c5f350ee724
tree9d3d773e1c60523183453652dd29a6947b0af595
parent9566c4a682065105a653c4c148325671755faace
[libc++] Generalize the customizeable assertion handler

Instead of taking a fixed set of arguments, use variadics so that
we can pass arbitrary arguments to the handler. This is the first
step towards using the handler to handle other non-assertion-related
failures, like std::unreachable and an exception being thrown in
-fno-exceptions mode, which would improve user experience by including
additional information in crashes (right now, we call abort() without
additional information).

Differential Revision: https://reviews.llvm.org/D130507
14 files changed:
libcxx/docs/UsingLibcxx.rst
libcxx/include/__assert
libcxx/lib/abi/CHANGELOG.TXT
libcxx/lib/abi/arm64-apple-darwin.libcxxabi.v1.stable.exceptions.nonew.abilist
libcxx/lib/abi/powerpc-ibm-aix.libcxxabi.v1.stable.exceptions.nonew.abilist
libcxx/lib/abi/powerpc64-ibm-aix.libcxxabi.v1.stable.exceptions.nonew.abilist
libcxx/lib/abi/x86_64-apple-darwin.libcxxabi.v1.stable.exceptions.nonew.abilist
libcxx/lib/abi/x86_64-unknown-linux-gnu.libcxxabi.v1.stable.exceptions.nonew.abilist
libcxx/lib/abi/x86_64-unknown-linux-gnu.libcxxabi.v1.stable.noexceptions.nonew.abilist
libcxx/src/assert.cpp
libcxx/test/libcxx/assertions/customize_handler.backdeployment.pass.cpp
libcxx/test/libcxx/assertions/customize_handler.pass.cpp
libcxx/test/libcxx/assertions/debug_mode_compatibility.pass.cpp
libcxx/test/support/check_assertion.h