[libcxx-commits] [PATCH] D153816: [libc++][hardening][NFC] Introduce `_LIBCPP_ASSERT_UNCATEGORIZED`.

Konstantin Varlamov via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Mon Jun 26 14:00:05 PDT 2023


var-const created this revision.
Herald added a reviewer: ldionne.
Herald added a subscriber: wenlei.
Herald added a project: All.
var-const requested review of this revision.
Herald added a reviewer: jdoerfert.
Herald added subscribers: libcxx-commits, jplehr, sstefan1.
Herald added a project: libc++.
Herald added a reviewer: libc++.

Replace most uses of `_LIBCPP_ASSERT` with
`_LIBCPP_ASSERT_UNCATEGORIZED`.

This is done as a prerequisite to introducing hardened mode to libc++.
The idea is to make enabling assertions an opt-in with (somewhat)
fine-grained controls over which categories of assertions are enabled.
The vast majority of assertions are currently uncategorized; the new
macro will allow turning on `_LIBCPP_ASSERT` (the underlying mechanism
for all kinds of assertions) without enabling all the uncategorized
assertions (in the future; this patch preserves the current behavior).


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D153816

Files:
  libcxx/include/__algorithm/clamp.h
  libcxx/include/__algorithm/pop_heap.h
  libcxx/include/__algorithm/ranges_clamp.h
  libcxx/include/__algorithm/ranges_max.h
  libcxx/include/__algorithm/ranges_min.h
  libcxx/include/__algorithm/ranges_minmax.h
  libcxx/include/__algorithm/sample.h
  libcxx/include/__algorithm/sift_down.h
  libcxx/include/__algorithm/sort.h
  libcxx/include/__assert
  libcxx/include/__bit/bit_ceil.h
  libcxx/include/__charconv/from_chars_integral.h
  libcxx/include/__charconv/to_chars_base_10.h
  libcxx/include/__charconv/to_chars_integral.h
  libcxx/include/__charconv/traits.h
  libcxx/include/__chrono/parser_std_format_spec.h
  libcxx/include/__coroutine/coroutine_handle.h
  libcxx/include/__debug_utils/strict_weak_ordering_check.h
  libcxx/include/__expected/expected.h
  libcxx/include/__filesystem/directory_iterator.h
  libcxx/include/__filesystem/path_iterator.h
  libcxx/include/__format/buffer.h
  libcxx/include/__format/format_arg.h
  libcxx/include/__format/format_string.h
  libcxx/include/__format/formatter_bool.h
  libcxx/include/__format/formatter_floating_point.h
  libcxx/include/__format/formatter_integral.h
  libcxx/include/__format/formatter_output.h
  libcxx/include/__format/formatter_string.h
  libcxx/include/__format/parser_std_format_spec.h
  libcxx/include/__format/range_formatter.h
  libcxx/include/__format/unicode.h
  libcxx/include/__functional/function.h
  libcxx/include/__hash_table
  libcxx/include/__iterator/advance.h
  libcxx/include/__iterator/bounded_iter.h
  libcxx/include/__iterator/common_iterator.h
  libcxx/include/__iterator/counted_iterator.h
  libcxx/include/__iterator/next.h
  libcxx/include/__iterator/prev.h
  libcxx/include/__mdspan/extents.h
  libcxx/include/__memory/assume_aligned.h
  libcxx/include/__memory/construct_at.h
  libcxx/include/__memory_resource/polymorphic_allocator.h
  libcxx/include/__node_handle
  libcxx/include/__numeric/gcd_lcm.h
  libcxx/include/__pstl/internal/algorithm_impl.h
  libcxx/include/__pstl/internal/numeric_impl.h
  libcxx/include/__pstl/internal/parallel_backend_tbb.h
  libcxx/include/__pstl/internal/parallel_backend_utils.h
  libcxx/include/__random/negative_binomial_distribution.h
  libcxx/include/__ranges/drop_view.h
  libcxx/include/__ranges/drop_while_view.h
  libcxx/include/__ranges/filter_view.h
  libcxx/include/__ranges/iota_view.h
  libcxx/include/__ranges/lazy_split_view.h
  libcxx/include/__ranges/subrange.h
  libcxx/include/__ranges/take_view.h
  libcxx/include/__ranges/view_interface.h
  libcxx/include/__stop_token/intrusive_list_view.h
  libcxx/include/__stop_token/stop_state.h
  libcxx/include/__string/char_traits.h
  libcxx/include/__thread/thread.h
  libcxx/include/__tree
  libcxx/include/__utility/exception_guard.h
  libcxx/include/__utility/is_pointer_in_range.h
  libcxx/include/__utility/unreachable.h
  libcxx/include/array
  libcxx/include/deque
  libcxx/include/experimental/memory_resource
  libcxx/include/fstream
  libcxx/include/future
  libcxx/include/list
  libcxx/include/locale
  libcxx/include/map
  libcxx/include/optional
  libcxx/include/regex
  libcxx/include/set
  libcxx/include/span
  libcxx/include/string
  libcxx/include/string_view
  libcxx/include/unordered_map
  libcxx/include/unordered_set
  libcxx/include/vector
  libcxx/src/filesystem/directory_iterator.cpp
  libcxx/src/filesystem/error.h
  libcxx/src/filesystem/format_string.h
  libcxx/src/filesystem/operations.cpp
  libcxx/src/filesystem/posix_compat.h
  libcxx/src/include/ryu/common.h
  libcxx/src/include/ryu/d2s_intrinsics.h
  libcxx/src/include/to_chars_floating_point.h
  libcxx/src/memory_resource.cpp
  libcxx/src/mutex.cpp
  libcxx/src/ryu/d2fixed.cpp
  libcxx/src/ryu/d2s.cpp
  libcxx/src/ryu/f2s.cpp
  libcxx/src/string.cpp
  libcxx/src/strstream.cpp
  libcxx/src/support/ibm/xlocale_zos.cpp
  libcxx/src/system_error.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D153816.534745.patch
Type: text/x-patch
Size: 231847 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20230626/8fffe238/attachment-0001.bin>


More information about the libcxx-commits mailing list