[all-commits] [llvm/llvm-project] f0dfe6: [libc++][hardening] Deprecate `_LIBCPP_ENABLE_ASSE...

Konstantin Varlamov via All-commits all-commits at lists.llvm.org
Fri Jul 14 16:59:17 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: f0dfe682bca0b39d1fd64845f1576243d00c9d59
      https://github.com/llvm/llvm-project/commit/f0dfe682bca0b39d1fd64845f1576243d00c9d59
  Author: varconst <varconsteq at gmail.com>
  Date:   2023-07-14 (Fri, 14 Jul 2023)

  Changed paths:
    M libcxx/CMakeLists.txt
    M libcxx/cmake/caches/AIX.cmake
    M libcxx/cmake/caches/Apple.cmake
    M libcxx/cmake/caches/FreeBSD.cmake
    R libcxx/cmake/caches/Generic-assertions.cmake
    M libcxx/docs/BuildingLibcxx.rst
    M libcxx/docs/HardenedMode.rst
    M libcxx/docs/ReleaseNotes.rst
    M libcxx/docs/UsingLibcxx.rst
    M libcxx/include/__assert
    M libcxx/include/__config
    M libcxx/include/__config_site.in
    M libcxx/test/CMakeLists.txt
    M libcxx/test/libcxx/algorithms/alg.sorting/assert.min.max.pass.cpp
    M libcxx/test/libcxx/algorithms/alg.sorting/assert.sort.invalid_comparator.pass.cpp
    R libcxx/test/libcxx/assertions/assertions_disabled.pass.cpp
    M libcxx/test/libcxx/assertions/customize_verbose_abort.compile-time.pass.cpp
    M libcxx/test/libcxx/assertions/customize_verbose_abort.link-time.pass.cpp
    M libcxx/test/libcxx/assertions/default_verbose_abort.pass.cpp
    M libcxx/test/libcxx/assertions/deprecated-link-time-custom-handler.pass.cpp
    M libcxx/test/libcxx/assertions/modes/debug_mode_disabled_in_tu.pass.cpp
    M libcxx/test/libcxx/assertions/modes/debug_mode_enabled_in_tu.pass.cpp
    R libcxx/test/libcxx/assertions/modes/debug_no_assertions.pass.cpp
    A libcxx/test/libcxx/assertions/modes/enabling_assertions_enables_hardened_mode.pass.cpp
    M libcxx/test/libcxx/assertions/modes/hardened.pass.cpp
    M libcxx/test/libcxx/assertions/modes/hardened_mode_disabled_in_tu.pass.cpp
    R libcxx/test/libcxx/assertions/modes/hardened_no_assertions.pass.cpp
    M libcxx/test/libcxx/assertions/modes/unchecked.pass.cpp
    A libcxx/test/libcxx/assertions/single_expression.pass.cpp
    R libcxx/test/libcxx/assertions/single_expression.sh.cpp
    M libcxx/test/libcxx/containers/sequences/array/array.zero/assert.back.pass.cpp
    M libcxx/test/libcxx/containers/sequences/array/array.zero/assert.front.pass.cpp
    M libcxx/test/libcxx/containers/sequences/array/array.zero/assert.subscript.pass.cpp
    M libcxx/test/libcxx/containers/sequences/deque/assert.pop_back.empty.pass.cpp
    M libcxx/test/libcxx/containers/sequences/list/list.modifiers/assert.erase_iter.end.pass.cpp
    M libcxx/test/libcxx/containers/sequences/list/list.modifiers/assert.pop_back.empty.pass.cpp
    M libcxx/test/libcxx/containers/sequences/vector/assert.back.empty.pass.cpp
    M libcxx/test/libcxx/containers/sequences/vector/assert.cback.empty.pass.cpp
    M libcxx/test/libcxx/containers/sequences/vector/assert.cfront.empty.pass.cpp
    M libcxx/test/libcxx/containers/sequences/vector/assert.cindex.oob.pass.cpp
    M libcxx/test/libcxx/containers/sequences/vector/assert.front.empty.pass.cpp
    M libcxx/test/libcxx/containers/sequences/vector/assert.index.oob.pass.cpp
    M libcxx/test/libcxx/containers/sequences/vector/assert.pop_back.empty.pass.cpp
    M libcxx/test/libcxx/containers/unord/unord.map/assert.bucket.pass.cpp
    M libcxx/test/libcxx/containers/unord/unord.map/assert.bucket_size.pass.cpp
    M libcxx/test/libcxx/containers/unord/unord.map/assert.max_load_factor.pass.cpp
    M libcxx/test/libcxx/containers/unord/unord.multimap/assert.bucket.pass.cpp
    M libcxx/test/libcxx/containers/unord/unord.multimap/assert.bucket_size.pass.cpp
    M libcxx/test/libcxx/containers/unord/unord.multimap/assert.max_load_factor.pass.cpp
    M libcxx/test/libcxx/containers/unord/unord.multiset/assert.bucket.pass.cpp
    M libcxx/test/libcxx/containers/unord/unord.multiset/assert.bucket_size.pass.cpp
    M libcxx/test/libcxx/containers/unord/unord.multiset/assert.max_load_factor.pass.cpp
    M libcxx/test/libcxx/containers/unord/unord.set/assert.bucket.pass.cpp
    M libcxx/test/libcxx/containers/unord/unord.set/assert.bucket_size.pass.cpp
    M libcxx/test/libcxx/containers/unord/unord.set/assert.max_load_factor.pass.cpp
    M libcxx/test/libcxx/containers/views/views.span/span.cons/assert.iter_sent.pass.cpp
    M libcxx/test/libcxx/containers/views/views.span/span.cons/assert.iter_size.pass.cpp
    M libcxx/test/libcxx/containers/views/views.span/span.cons/assert.other_span.pass.cpp
    M libcxx/test/libcxx/containers/views/views.span/span.cons/assert.range.pass.cpp
    M libcxx/test/libcxx/containers/views/views.span/span.elem/assert.back.pass.cpp
    M libcxx/test/libcxx/containers/views/views.span/span.elem/assert.front.pass.cpp
    M libcxx/test/libcxx/containers/views/views.span/span.elem/assert.op_idx.pass.cpp
    M libcxx/test/libcxx/containers/views/views.span/span.sub/assert.first.pass.cpp
    M libcxx/test/libcxx/containers/views/views.span/span.sub/assert.last.pass.cpp
    M libcxx/test/libcxx/containers/views/views.span/span.sub/assert.subspan.pass.cpp
    R libcxx/test/libcxx/debug/debug.assertions-enabled.compile.pass.cpp
    M libcxx/test/libcxx/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/assert.deallocate.pass.cpp
    M libcxx/test/libcxx/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.mem/assert.deallocate.pass.cpp
    M libcxx/test/libcxx/input.output/filesystems/class.path/path.itr/assert.iterator.pass.cpp
    M libcxx/test/libcxx/iterators/assert.advance.pass.cpp
    M libcxx/test/libcxx/iterators/assert.next.pass.cpp
    M libcxx/test/libcxx/iterators/assert.prev.pass.cpp
    M libcxx/test/libcxx/iterators/bounded_iter/dereference.pass.cpp
    M libcxx/test/libcxx/ranges/range.adaptors/range.drop.while/assert.begin.pass.cpp
    M libcxx/test/libcxx/ranges/range.adaptors/range.lazy.split/range.lazy.split.inner/assert.equal.pass.cpp
    M libcxx/test/libcxx/ranges/range.adaptors/range.lazy.split/range.lazy.split.outer/assert.equal.pass.cpp
    M libcxx/test/libcxx/strings/basic.string/string.access/assert.back.pass.cpp
    M libcxx/test/libcxx/strings/basic.string/string.access/assert.cback.pass.cpp
    M libcxx/test/libcxx/strings/basic.string/string.access/assert.cfront.pass.cpp
    M libcxx/test/libcxx/strings/basic.string/string.access/assert.cindex.pass.cpp
    M libcxx/test/libcxx/strings/basic.string/string.access/assert.front.pass.cpp
    M libcxx/test/libcxx/strings/basic.string/string.access/assert.index.pass.cpp
    M libcxx/test/libcxx/strings/basic.string/string.modifiers/assert.erase_iter.null.pass.cpp
    M libcxx/test/libcxx/strings/basic.string/string.modifiers/assert.pop_back.pass.cpp
    M libcxx/test/libcxx/strings/string.view/assert.ctor.length.pass.cpp
    M libcxx/test/libcxx/strings/string.view/assert.ctor.pointer.pass.cpp
    M libcxx/test/libcxx/thread/futures/futures.promise/assert.set_exception.pass.cpp
    M libcxx/test/libcxx/thread/futures/futures.promise/assert.set_exception_at_thread_exit.pass.cpp
    M libcxx/test/libcxx/thread/thread.latch/assert.arrive_and_wait.pass.cpp
    M libcxx/test/libcxx/thread/thread.latch/assert.count_down.pass.cpp
    M libcxx/test/libcxx/thread/thread.latch/assert.ctor.pass.cpp
    M libcxx/test/libcxx/utilities/assert.exception_guard.no_exceptions.pass.cpp
    M libcxx/test/libcxx/utilities/expected/expected.expected/assert.arrow.pass.cpp
    M libcxx/test/libcxx/utilities/expected/expected.expected/assert.deref.pass.cpp
    M libcxx/test/libcxx/utilities/expected/expected.expected/assert.error.pass.cpp
    M libcxx/test/libcxx/utilities/expected/expected.void/assert.deref.pass.cpp
    M libcxx/test/libcxx/utilities/expected/expected.void/assert.error.pass.cpp
    M libcxx/test/libcxx/utilities/optional/optional.object/optional.object.observe/assert.dereference.pass.cpp
    M libcxx/test/libcxx/utilities/optional/optional.object/optional.object.observe/assert.op_arrow.pass.cpp
    M libcxx/test/std/algorithms/alg.sorting/alg.clamp/assert.ranges_clamp.pass.cpp
    M libcxx/test/std/algorithms/alg.sorting/alg.heap.operations/pop.heap/assert.pop_heap.pass.cpp
    M libcxx/test/std/algorithms/alg.sorting/alg.heap.operations/pop.heap/assert.ranges_pop_heap.pass.cpp
    M libcxx/test/std/containers/views/mdspan/extents/assert.conversion.pass.cpp
    M libcxx/test/std/containers/views/mdspan/extents/assert.ctor_from_array.pass.cpp
    M libcxx/test/std/containers/views/mdspan/extents/assert.ctor_from_integral.pass.cpp
    M libcxx/test/std/containers/views/mdspan/extents/assert.ctor_from_span.pass.cpp
    M libcxx/test/std/containers/views/mdspan/extents/assert.obs.pass.cpp
    M libcxx/test/std/containers/views/mdspan/layout_left/assert.conversion.pass.cpp
    M libcxx/test/std/containers/views/mdspan/layout_left/assert.ctor.extents.pass.cpp
    M libcxx/test/std/containers/views/mdspan/layout_left/assert.ctor.layout_right.pass.cpp
    M libcxx/test/std/containers/views/mdspan/layout_left/assert.index_operator.pass.cpp
    M libcxx/test/std/containers/views/mdspan/layout_left/assert.stride.pass.cpp
    M libcxx/test/std/containers/views/mdspan/layout_right/assert.conversion.pass.cpp
    M libcxx/test/std/containers/views/mdspan/layout_right/assert.ctor.extents.pass.cpp
    M libcxx/test/std/containers/views/mdspan/layout_right/assert.ctor.layout_left.pass.cpp
    M libcxx/test/std/containers/views/mdspan/layout_right/assert.index_operator.pass.cpp
    M libcxx/test/std/containers/views/mdspan/layout_right/assert.stride.pass.cpp
    M libcxx/test/std/utilities/utility/utility.unreachable/assert.unreachable.pass.cpp
    M libcxx/test/support/test.support/test_check_assertion.pass.cpp
    M libcxx/utils/ci/buildkite-pipeline.yml
    M libcxx/utils/ci/run-buildbot
    M libcxx/utils/libcxx/test/params.py

  Log Message:
  -----------
  [libc++][hardening] Deprecate `_LIBCPP_ENABLE_ASSERTIONS`.

`_LIBCPP_ENABLE_ASSERTIONS` was used to enable the "safe" mode in
libc++. Libc++ now provides the hardened mode and the debug mode that
replace the safe mode.

For backward compatibility, enabling `_LIBCPP_ENABLE_ASSERTIONS` now
enables the hardened mode. Note that the hardened mode provides
a narrower set of checks than the previous "safe" mode (only
security-critical checks that are performant enough to be used in
production).

Differential Revision: https://reviews.llvm.org/D154997




More information about the All-commits mailing list