[libcxx-commits] [PATCH] D121478: [libc++] Add a lightweight overridable assertion handler

Louis Dionne via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Wed Mar 23 10:04:01 PDT 2022


ldionne updated this revision to Diff 417676.
ldionne marked 3 inline comments as done.
ldionne edited the summary of this revision.
ldionne added a comment.
Herald added a subscriber: arphaman.

Make sure load-time failures can't happen when back-deploying, and add more tests.

I think this should be ready to go if CI is happy, and I'll address comments about being able to customize the default handler after including any header in separate patches, as outlined in the comments.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D121478/new/

https://reviews.llvm.org/D121478

Files:
  libcxx/CMakeLists.txt
  libcxx/cmake/caches/Generic-assertions.cmake
  libcxx/docs/BuildingLibcxx.rst
  libcxx/docs/ReleaseNotes.rst
  libcxx/docs/UsingLibcxx.rst
  libcxx/include/__assert
  libcxx/include/__availability
  libcxx/include/__config_site.in
  libcxx/lib/abi/arm64-apple-darwin.libcxxabi.v1.stable.exceptions.nonew.debug.incomplete.abilist
  libcxx/lib/abi/arm64-apple-darwin.libcxxabi.v1.stable.exceptions.nonew.nodebug.noincomplete.abilist
  libcxx/lib/abi/x86_64-apple-darwin.libcxxabi.v1.stable.exceptions.nonew.debug.incomplete.abilist
  libcxx/lib/abi/x86_64-apple-darwin.libcxxabi.v1.stable.exceptions.nonew.nodebug.noincomplete.abilist
  libcxx/lib/abi/x86_64-unknown-linux-gnu.libcxxabi.v1.stable.exceptions.nonew.debug.incomplete.abilist
  libcxx/lib/abi/x86_64-unknown-linux-gnu.libcxxabi.v1.stable.exceptions.nonew.debug.noincomplete.abilist
  libcxx/lib/abi/x86_64-unknown-linux-gnu.libcxxabi.v1.stable.exceptions.nonew.nodebug.incomplete.abilist
  libcxx/lib/abi/x86_64-unknown-linux-gnu.libcxxabi.v1.stable.noexceptions.nonew.debug.incomplete.abilist
  libcxx/src/CMakeLists.txt
  libcxx/src/assert.cpp
  libcxx/src/legacy_debug_handler.cpp
  libcxx/test/libcxx/assertions/assertions_disabled.pass.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/libcxx/assertions/default_handler.abort.pass.cpp
  libcxx/test/libcxx/assertions/default_handler.availability.verify.cpp
  libcxx/test/libcxx/containers/sequences/array/array.zero/assert.back.pass.cpp
  libcxx/test/libcxx/containers/sequences/array/array.zero/assert.front.pass.cpp
  libcxx/test/libcxx/containers/sequences/array/array.zero/assert.subscript.pass.cpp
  libcxx/test/libcxx/containers/sequences/deque/assert.pop_back.empty.pass.cpp
  libcxx/test/libcxx/containers/sequences/list/list.modifiers/assert.erase_iter.end.pass.cpp
  libcxx/test/libcxx/containers/sequences/list/list.modifiers/assert.pop_back.empty.pass.cpp
  libcxx/test/libcxx/containers/sequences/vector/assert.back.empty.pass.cpp
  libcxx/test/libcxx/containers/sequences/vector/assert.cback.empty.pass.cpp
  libcxx/test/libcxx/containers/sequences/vector/assert.cfront.empty.pass.cpp
  libcxx/test/libcxx/containers/sequences/vector/assert.cindex.oob.pass.cpp
  libcxx/test/libcxx/containers/sequences/vector/assert.front.empty.pass.cpp
  libcxx/test/libcxx/containers/sequences/vector/assert.index.oob.pass.cpp
  libcxx/test/libcxx/containers/sequences/vector/assert.pop_back.empty.pass.cpp
  libcxx/test/libcxx/containers/sequences/vector/robust_against_adl.pass.cpp
  libcxx/test/libcxx/containers/unord/unord.map/assert.bucket.pass.cpp
  libcxx/test/libcxx/containers/unord/unord.map/assert.bucket_size.pass.cpp
  libcxx/test/libcxx/containers/unord/unord.map/assert.max_load_factor.pass.cpp
  libcxx/test/libcxx/containers/unord/unord.multimap/assert.bucket.pass.cpp
  libcxx/test/libcxx/containers/unord/unord.multimap/assert.bucket_size.pass.cpp
  libcxx/test/libcxx/containers/unord/unord.multimap/assert.max_load_factor.pass.cpp
  libcxx/test/libcxx/containers/unord/unord.multiset/assert.bucket.pass.cpp
  libcxx/test/libcxx/containers/unord/unord.multiset/assert.bucket_size.pass.cpp
  libcxx/test/libcxx/containers/unord/unord.multiset/assert.max_load_factor.pass.cpp
  libcxx/test/libcxx/containers/unord/unord.set/assert.bucket.pass.cpp
  libcxx/test/libcxx/containers/unord/unord.set/assert.bucket_size.pass.cpp
  libcxx/test/libcxx/containers/unord/unord.set/assert.max_load_factor.pass.cpp
  libcxx/test/libcxx/debug/check_assertion_test.pass.cpp
  libcxx/test/libcxx/debug/containers/string.pass.cpp
  libcxx/test/libcxx/debug/debug_abort.pass.cpp
  libcxx/test/libcxx/debug/register_debug_handler.pass.cpp
  libcxx/test/libcxx/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/assert.deallocate.pass.cpp
  libcxx/test/libcxx/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.mem/assert.deallocate.pass.cpp
  libcxx/test/libcxx/input.output/filesystems/class.path/path.itr/assert.iterator.pass.cpp
  libcxx/test/libcxx/iterators/assert.advance.pass.cpp
  libcxx/test/libcxx/iterators/assert.next.pass.cpp
  libcxx/test/libcxx/iterators/assert.prev.pass.cpp
  libcxx/test/libcxx/strings/basic.string/string.access/assert.back.pass.cpp
  libcxx/test/libcxx/strings/basic.string/string.access/assert.cback.pass.cpp
  libcxx/test/libcxx/strings/basic.string/string.access/assert.cfront.pass.cpp
  libcxx/test/libcxx/strings/basic.string/string.access/assert.cindex.pass.cpp
  libcxx/test/libcxx/strings/basic.string/string.access/assert.front.pass.cpp
  libcxx/test/libcxx/strings/basic.string/string.access/assert.index.pass.cpp
  libcxx/test/libcxx/strings/basic.string/string.modifiers/assert.erase_iter.null.pass.cpp
  libcxx/test/libcxx/strings/basic.string/string.modifiers/assert.pop_back.pass.cpp
  libcxx/test/libcxx/strings/string.view/assert.ctor.pointer.pass.cpp
  libcxx/test/libcxx/thread/futures/futures.promise/assert.set_exception.pass.cpp
  libcxx/test/libcxx/thread/futures/futures.promise/assert.set_exception_at_thread_exit.pass.cpp
  libcxx/test/libcxx/utilities/optional/optional.object/optional.object.observe/assert.dereference.pass.cpp
  libcxx/test/libcxx/utilities/optional/optional.object/optional.object.observe/assert.op_arrow.pass.cpp
  libcxx/test/support/check_assertion.h
  libcxx/test/support/test.support/test_check_assertion.pass.cpp
  libcxx/utils/libcxx/test/params.py

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D121478.417676.patch
Type: text/x-patch
Size: 77886 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20220323/a55e30fe/attachment-0001.bin>


More information about the libcxx-commits mailing list