Skip to content

Commit 37dca60

Browse files
authored
[libc++] Clean up includes of <__assert> (llvm#80091)
Originally, we used __libcpp_verbose_abort to handle assertion failures. That function was declared from all public headers. Since we don't use that mechanism anymore, we don't need to declare __libcpp_verbose_abort from all public headers, and we can clean up a lot of unnecessary includes. This patch also moves the definition of the various assertion categories to the <__assert> header, since we now rely on regular IWYU for these assertion macros. rdar://105510916
1 parent e60ebbd commit 37dca60

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

127 files changed

+119
-224
lines changed

libcxx/include/__assert

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,85 @@
3434
# define _LIBCPP_ASSUME(expression) ((void)0)
3535
#endif
3636

37+
// clang-format off
38+
// Fast hardening mode checks.
39+
40+
#if _LIBCPP_HARDENING_MODE == _LIBCPP_HARDENING_MODE_FAST
41+
42+
// Enabled checks.
43+
# define _LIBCPP_ASSERT_VALID_INPUT_RANGE(expression, message) _LIBCPP_ASSERT(expression, message)
44+
# define _LIBCPP_ASSERT_VALID_ELEMENT_ACCESS(expression, message) _LIBCPP_ASSERT(expression, message)
45+
// Disabled checks.
46+
// On most modern platforms, dereferencing a null pointer does not lead to an actual memory access.
47+
# define _LIBCPP_ASSERT_NON_NULL(expression, message) _LIBCPP_ASSUME(expression)
48+
// Overlapping ranges will make algorithms produce incorrect results but don't directly lead to a security
49+
// vulnerability.
50+
# define _LIBCPP_ASSERT_NON_OVERLAPPING_RANGES(expression, message) _LIBCPP_ASSUME(expression)
51+
# define _LIBCPP_ASSERT_VALID_DEALLOCATION(expression, message) _LIBCPP_ASSUME(expression)
52+
# define _LIBCPP_ASSERT_VALID_EXTERNAL_API_CALL(expression, message) _LIBCPP_ASSUME(expression)
53+
# define _LIBCPP_ASSERT_COMPATIBLE_ALLOCATOR(expression, message) _LIBCPP_ASSUME(expression)
54+
# define _LIBCPP_ASSERT_ARGUMENT_WITHIN_DOMAIN(expression, message) _LIBCPP_ASSUME(expression)
55+
# define _LIBCPP_ASSERT_PEDANTIC(expression, message) _LIBCPP_ASSUME(expression)
56+
# define _LIBCPP_ASSERT_SEMANTIC_REQUIREMENT(expression, message) _LIBCPP_ASSUME(expression)
57+
# define _LIBCPP_ASSERT_INTERNAL(expression, message) _LIBCPP_ASSUME(expression)
58+
# define _LIBCPP_ASSERT_UNCATEGORIZED(expression, message) _LIBCPP_ASSUME(expression)
59+
60+
// Extensive hardening mode checks.
61+
62+
#elif _LIBCPP_HARDENING_MODE == _LIBCPP_HARDENING_MODE_EXTENSIVE
63+
64+
// Enabled checks.
65+
# define _LIBCPP_ASSERT_VALID_INPUT_RANGE(expression, message) _LIBCPP_ASSERT(expression, message)
66+
# define _LIBCPP_ASSERT_VALID_ELEMENT_ACCESS(expression, message) _LIBCPP_ASSERT(expression, message)
67+
# define _LIBCPP_ASSERT_NON_NULL(expression, message) _LIBCPP_ASSERT(expression, message)
68+
# define _LIBCPP_ASSERT_NON_OVERLAPPING_RANGES(expression, message) _LIBCPP_ASSERT(expression, message)
69+
# define _LIBCPP_ASSERT_VALID_DEALLOCATION(expression, message) _LIBCPP_ASSERT(expression, message)
70+
# define _LIBCPP_ASSERT_VALID_EXTERNAL_API_CALL(expression, message) _LIBCPP_ASSERT(expression, message)
71+
# define _LIBCPP_ASSERT_COMPATIBLE_ALLOCATOR(expression, message) _LIBCPP_ASSERT(expression, message)
72+
# define _LIBCPP_ASSERT_ARGUMENT_WITHIN_DOMAIN(expression, message) _LIBCPP_ASSERT(expression, message)
73+
# define _LIBCPP_ASSERT_PEDANTIC(expression, message) _LIBCPP_ASSERT(expression, message)
74+
# define _LIBCPP_ASSERT_UNCATEGORIZED(expression, message) _LIBCPP_ASSERT(expression, message)
75+
// Disabled checks.
76+
# define _LIBCPP_ASSERT_SEMANTIC_REQUIREMENT(expression, message) _LIBCPP_ASSUME(expression)
77+
# define _LIBCPP_ASSERT_INTERNAL(expression, message) _LIBCPP_ASSUME(expression)
78+
79+
// Debug hardening mode checks.
80+
81+
#elif _LIBCPP_HARDENING_MODE == _LIBCPP_HARDENING_MODE_DEBUG
82+
83+
// All checks enabled.
84+
# define _LIBCPP_ASSERT_VALID_INPUT_RANGE(expression, message) _LIBCPP_ASSERT(expression, message)
85+
# define _LIBCPP_ASSERT_VALID_ELEMENT_ACCESS(expression, message) _LIBCPP_ASSERT(expression, message)
86+
# define _LIBCPP_ASSERT_NON_NULL(expression, message) _LIBCPP_ASSERT(expression, message)
87+
# define _LIBCPP_ASSERT_NON_OVERLAPPING_RANGES(expression, message) _LIBCPP_ASSERT(expression, message)
88+
# define _LIBCPP_ASSERT_VALID_DEALLOCATION(expression, message) _LIBCPP_ASSERT(expression, message)
89+
# define _LIBCPP_ASSERT_VALID_EXTERNAL_API_CALL(expression, message) _LIBCPP_ASSERT(expression, message)
90+
# define _LIBCPP_ASSERT_COMPATIBLE_ALLOCATOR(expression, message) _LIBCPP_ASSERT(expression, message)
91+
# define _LIBCPP_ASSERT_ARGUMENT_WITHIN_DOMAIN(expression, message) _LIBCPP_ASSERT(expression, message)
92+
# define _LIBCPP_ASSERT_PEDANTIC(expression, message) _LIBCPP_ASSERT(expression, message)
93+
# define _LIBCPP_ASSERT_SEMANTIC_REQUIREMENT(expression, message) _LIBCPP_ASSERT(expression, message)
94+
# define _LIBCPP_ASSERT_INTERNAL(expression, message) _LIBCPP_ASSERT(expression, message)
95+
# define _LIBCPP_ASSERT_UNCATEGORIZED(expression, message) _LIBCPP_ASSERT(expression, message)
96+
97+
// Disable all checks if hardening is not enabled.
98+
99+
#else
100+
101+
// All checks disabled.
102+
# define _LIBCPP_ASSERT_VALID_INPUT_RANGE(expression, message) _LIBCPP_ASSUME(expression)
103+
# define _LIBCPP_ASSERT_VALID_ELEMENT_ACCESS(expression, message) _LIBCPP_ASSUME(expression)
104+
# define _LIBCPP_ASSERT_NON_NULL(expression, message) _LIBCPP_ASSUME(expression)
105+
# define _LIBCPP_ASSERT_NON_OVERLAPPING_RANGES(expression, message) _LIBCPP_ASSUME(expression)
106+
# define _LIBCPP_ASSERT_VALID_DEALLOCATION(expression, message) _LIBCPP_ASSUME(expression)
107+
# define _LIBCPP_ASSERT_VALID_EXTERNAL_API_CALL(expression, message) _LIBCPP_ASSUME(expression)
108+
# define _LIBCPP_ASSERT_COMPATIBLE_ALLOCATOR(expression, message) _LIBCPP_ASSUME(expression)
109+
# define _LIBCPP_ASSERT_ARGUMENT_WITHIN_DOMAIN(expression, message) _LIBCPP_ASSUME(expression)
110+
# define _LIBCPP_ASSERT_PEDANTIC(expression, message) _LIBCPP_ASSUME(expression)
111+
# define _LIBCPP_ASSERT_SEMANTIC_REQUIREMENT(expression, message) _LIBCPP_ASSUME(expression)
112+
# define _LIBCPP_ASSERT_INTERNAL(expression, message) _LIBCPP_ASSUME(expression)
113+
# define _LIBCPP_ASSERT_UNCATEGORIZED(expression, message) _LIBCPP_ASSUME(expression)
114+
115+
#endif // _LIBCPP_HARDENING_MODE == _LIBCPP_HARDENING_MODE_FAST
116+
// clang-format on
117+
37118
#endif // _LIBCPP___ASSERT

libcxx/include/__atomic/atomic_flag.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
#include <__atomic/contention_t.h>
1414
#include <__atomic/cxx_atomic_impl.h>
1515
#include <__atomic/memory_order.h>
16+
#include <__availability>
1617
#include <__chrono/duration.h>
1718
#include <__config>
1819
#include <__thread/support.h>

libcxx/include/__charconv/from_chars_integral.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
#define _LIBCPP___CHARCONV_FROM_CHARS_INTEGRAL_H
1212

1313
#include <__algorithm/copy_n.h>
14+
#include <__assert>
1415
#include <__charconv/from_chars_result.h>
1516
#include <__charconv/traits.h>
1617
#include <__config>

libcxx/include/__charconv/to_chars_base_10.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
#define _LIBCPP___CHARCONV_TO_CHARS_BASE_10_H
1212

1313
#include <__algorithm/copy_n.h>
14+
#include <__assert>
1415
#include <__charconv/tables.h>
1516
#include <__config>
1617
#include <cstdint>

libcxx/include/__charconv/to_chars_integral.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
#define _LIBCPP___CHARCONV_TO_CHARS_INTEGRAL_H
1212

1313
#include <__algorithm/copy_n.h>
14+
#include <__assert>
1415
#include <__bit/countl.h>
1516
#include <__charconv/tables.h>
1617
#include <__charconv/to_chars_base_10.h>

libcxx/include/__charconv/traits.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
#ifndef _LIBCPP___CHARCONV_TRAITS
1111
#define _LIBCPP___CHARCONV_TRAITS
1212

13+
#include <__assert>
1314
#include <__bit/countl.h>
1415
#include <__charconv/tables.h>
1516
#include <__charconv/to_chars_base_10.h>

libcxx/include/__config

Lines changed: 0 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -345,87 +345,6 @@ _LIBCPP_HARDENING_MODE_EXTENSIVE, \
345345
_LIBCPP_HARDENING_MODE_DEBUG
346346
# endif
347347

348-
// clang-format off
349-
// Fast hardening mode checks.
350-
351-
# if _LIBCPP_HARDENING_MODE == _LIBCPP_HARDENING_MODE_FAST
352-
353-
// Enabled checks.
354-
# define _LIBCPP_ASSERT_VALID_INPUT_RANGE(expression, message) _LIBCPP_ASSERT(expression, message)
355-
# define _LIBCPP_ASSERT_VALID_ELEMENT_ACCESS(expression, message) _LIBCPP_ASSERT(expression, message)
356-
// Disabled checks.
357-
// On most modern platforms, dereferencing a null pointer does not lead to an actual memory access.
358-
# define _LIBCPP_ASSERT_NON_NULL(expression, message) _LIBCPP_ASSUME(expression)
359-
// Overlapping ranges will make algorithms produce incorrect results but don't directly lead to a security
360-
// vulnerability.
361-
# define _LIBCPP_ASSERT_NON_OVERLAPPING_RANGES(expression, message) _LIBCPP_ASSUME(expression)
362-
# define _LIBCPP_ASSERT_VALID_DEALLOCATION(expression, message) _LIBCPP_ASSUME(expression)
363-
# define _LIBCPP_ASSERT_VALID_EXTERNAL_API_CALL(expression, message) _LIBCPP_ASSUME(expression)
364-
# define _LIBCPP_ASSERT_COMPATIBLE_ALLOCATOR(expression, message) _LIBCPP_ASSUME(expression)
365-
# define _LIBCPP_ASSERT_ARGUMENT_WITHIN_DOMAIN(expression, message) _LIBCPP_ASSUME(expression)
366-
# define _LIBCPP_ASSERT_PEDANTIC(expression, message) _LIBCPP_ASSUME(expression)
367-
# define _LIBCPP_ASSERT_SEMANTIC_REQUIREMENT(expression, message) _LIBCPP_ASSUME(expression)
368-
# define _LIBCPP_ASSERT_INTERNAL(expression, message) _LIBCPP_ASSUME(expression)
369-
# define _LIBCPP_ASSERT_UNCATEGORIZED(expression, message) _LIBCPP_ASSUME(expression)
370-
371-
// Extensive hardening mode checks.
372-
373-
# elif _LIBCPP_HARDENING_MODE == _LIBCPP_HARDENING_MODE_EXTENSIVE
374-
375-
// Enabled checks.
376-
# define _LIBCPP_ASSERT_VALID_INPUT_RANGE(expression, message) _LIBCPP_ASSERT(expression, message)
377-
# define _LIBCPP_ASSERT_VALID_ELEMENT_ACCESS(expression, message) _LIBCPP_ASSERT(expression, message)
378-
# define _LIBCPP_ASSERT_NON_NULL(expression, message) _LIBCPP_ASSERT(expression, message)
379-
# define _LIBCPP_ASSERT_NON_OVERLAPPING_RANGES(expression, message) _LIBCPP_ASSERT(expression, message)
380-
# define _LIBCPP_ASSERT_VALID_DEALLOCATION(expression, message) _LIBCPP_ASSERT(expression, message)
381-
# define _LIBCPP_ASSERT_VALID_EXTERNAL_API_CALL(expression, message) _LIBCPP_ASSERT(expression, message)
382-
# define _LIBCPP_ASSERT_COMPATIBLE_ALLOCATOR(expression, message) _LIBCPP_ASSERT(expression, message)
383-
# define _LIBCPP_ASSERT_ARGUMENT_WITHIN_DOMAIN(expression, message) _LIBCPP_ASSERT(expression, message)
384-
# define _LIBCPP_ASSERT_PEDANTIC(expression, message) _LIBCPP_ASSERT(expression, message)
385-
# define _LIBCPP_ASSERT_UNCATEGORIZED(expression, message) _LIBCPP_ASSERT(expression, message)
386-
// Disabled checks.
387-
# define _LIBCPP_ASSERT_SEMANTIC_REQUIREMENT(expression, message) _LIBCPP_ASSUME(expression)
388-
# define _LIBCPP_ASSERT_INTERNAL(expression, message) _LIBCPP_ASSUME(expression)
389-
390-
// Debug hardening mode checks.
391-
392-
# elif _LIBCPP_HARDENING_MODE == _LIBCPP_HARDENING_MODE_DEBUG
393-
394-
// All checks enabled.
395-
# define _LIBCPP_ASSERT_VALID_INPUT_RANGE(expression, message) _LIBCPP_ASSERT(expression, message)
396-
# define _LIBCPP_ASSERT_VALID_ELEMENT_ACCESS(expression, message) _LIBCPP_ASSERT(expression, message)
397-
# define _LIBCPP_ASSERT_NON_NULL(expression, message) _LIBCPP_ASSERT(expression, message)
398-
# define _LIBCPP_ASSERT_NON_OVERLAPPING_RANGES(expression, message) _LIBCPP_ASSERT(expression, message)
399-
# define _LIBCPP_ASSERT_VALID_DEALLOCATION(expression, message) _LIBCPP_ASSERT(expression, message)
400-
# define _LIBCPP_ASSERT_VALID_EXTERNAL_API_CALL(expression, message) _LIBCPP_ASSERT(expression, message)
401-
# define _LIBCPP_ASSERT_COMPATIBLE_ALLOCATOR(expression, message) _LIBCPP_ASSERT(expression, message)
402-
# define _LIBCPP_ASSERT_ARGUMENT_WITHIN_DOMAIN(expression, message) _LIBCPP_ASSERT(expression, message)
403-
# define _LIBCPP_ASSERT_PEDANTIC(expression, message) _LIBCPP_ASSERT(expression, message)
404-
# define _LIBCPP_ASSERT_SEMANTIC_REQUIREMENT(expression, message) _LIBCPP_ASSERT(expression, message)
405-
# define _LIBCPP_ASSERT_INTERNAL(expression, message) _LIBCPP_ASSERT(expression, message)
406-
# define _LIBCPP_ASSERT_UNCATEGORIZED(expression, message) _LIBCPP_ASSERT(expression, message)
407-
408-
// Disable all checks if hardening is not enabled.
409-
410-
# else
411-
412-
// All checks disabled.
413-
# define _LIBCPP_ASSERT_VALID_INPUT_RANGE(expression, message) _LIBCPP_ASSUME(expression)
414-
# define _LIBCPP_ASSERT_VALID_ELEMENT_ACCESS(expression, message) _LIBCPP_ASSUME(expression)
415-
# define _LIBCPP_ASSERT_NON_NULL(expression, message) _LIBCPP_ASSUME(expression)
416-
# define _LIBCPP_ASSERT_NON_OVERLAPPING_RANGES(expression, message) _LIBCPP_ASSUME(expression)
417-
# define _LIBCPP_ASSERT_VALID_DEALLOCATION(expression, message) _LIBCPP_ASSUME(expression)
418-
# define _LIBCPP_ASSERT_VALID_EXTERNAL_API_CALL(expression, message) _LIBCPP_ASSUME(expression)
419-
# define _LIBCPP_ASSERT_COMPATIBLE_ALLOCATOR(expression, message) _LIBCPP_ASSUME(expression)
420-
# define _LIBCPP_ASSERT_ARGUMENT_WITHIN_DOMAIN(expression, message) _LIBCPP_ASSUME(expression)
421-
# define _LIBCPP_ASSERT_PEDANTIC(expression, message) _LIBCPP_ASSUME(expression)
422-
# define _LIBCPP_ASSERT_SEMANTIC_REQUIREMENT(expression, message) _LIBCPP_ASSUME(expression)
423-
# define _LIBCPP_ASSERT_INTERNAL(expression, message) _LIBCPP_ASSUME(expression)
424-
# define _LIBCPP_ASSERT_UNCATEGORIZED(expression, message) _LIBCPP_ASSUME(expression)
425-
426-
# endif // _LIBCPP_HARDENING_MODE == _LIBCPP_HARDENING_MODE_FAST
427-
// clang-format on
428-
429348
// } HARDENING
430349

431350
# define _LIBCPP_TOSTRING2(x) #x

libcxx/include/__format/formatter_floating_point.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
#include <__algorithm/min.h>
1717
#include <__algorithm/rotate.h>
1818
#include <__algorithm/transform.h>
19+
#include <__assert>
1920
#include <__charconv/chars_format.h>
2021
#include <__charconv/to_chars_floating_point.h>
2122
#include <__charconv/to_chars_result.h>

libcxx/include/__numeric/saturation_arithmetic.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
#ifndef _LIBCPP___NUMERIC_SATURATION_ARITHMETIC_H
1111
#define _LIBCPP___NUMERIC_SATURATION_ARITHMETIC_H
1212

13+
#include <__assert>
1314
#include <__concepts/arithmetic.h>
1415
#include <__config>
1516
#include <__utility/cmp.h>

libcxx/include/__random/negative_binomial_distribution.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
#ifndef _LIBCPP___RANDOM_NEGATIVE_BINOMIAL_DISTRIBUTION_H
1010
#define _LIBCPP___RANDOM_NEGATIVE_BINOMIAL_DISTRIBUTION_H
1111

12+
#include <__assert>
1213
#include <__config>
1314
#include <__random/bernoulli_distribution.h>
1415
#include <__random/gamma_distribution.h>

libcxx/include/__ranges/repeat_view.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
#ifndef _LIBCPP___RANGES_REPEAT_VIEW_H
1111
#define _LIBCPP___RANGES_REPEAT_VIEW_H
1212

13+
#include <__assert>
1314
#include <__concepts/constructible.h>
1415
#include <__concepts/same_as.h>
1516
#include <__concepts/semiregular.h>

libcxx/include/__stop_token/stop_state.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
#ifndef _LIBCPP___STOP_TOKEN_STOP_STATE_H
1111
#define _LIBCPP___STOP_TOKEN_STOP_STATE_H
1212

13+
#include <__assert>
1314
#include <__availability>
1415
#include <__config>
1516
#include <__stop_token/atomic_unique_lock.h>

libcxx/include/__string/char_traits.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
#include <__algorithm/find_end.h>
1515
#include <__algorithm/find_first_of.h>
1616
#include <__algorithm/min.h>
17+
#include <__assert>
1718
#include <__compare/ordering.h>
1819
#include <__config>
1920
#include <__functional/hash.h>

libcxx/include/algorithm

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1793,7 +1793,6 @@ template <class BidirectionalIterator, class Compare>
17931793
17941794
*/
17951795

1796-
#include <__assert> // all public C++ headers provide the assertion handler
17971796
#include <__config>
17981797
#include <version>
17991798

libcxx/include/any

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,6 @@ namespace std {
8080
8181
*/
8282

83-
#include <__assert> // all public C++ headers provide the assertion handler
8483
#include <__availability>
8584
#include <__config>
8685
#include <__memory/allocator.h>

libcxx/include/array

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ template <size_t I, class T, size_t N> const T&& get(const array<T, N>&&) noexce
116116
#include <__algorithm/lexicographical_compare.h>
117117
#include <__algorithm/lexicographical_compare_three_way.h>
118118
#include <__algorithm/swap_ranges.h>
119-
#include <__assert> // all public C++ headers provide the assertion handler
119+
#include <__assert>
120120
#include <__config>
121121
#include <__fwd/array.h>
122122
#include <__iterator/reverse_iterator.h>

libcxx/include/atomic

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -587,7 +587,6 @@ template <class T>
587587
588588
*/
589589

590-
#include <__assert> // all public C++ headers provide the assertion handler
591590
#include <__atomic/aliases.h>
592591
#include <__atomic/atomic.h>
593592
#include <__atomic/atomic_base.h>

libcxx/include/barrier

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ namespace std
5151
# error "<barrier> is not supported since libc++ has been configured without support for threads."
5252
#endif
5353

54-
#include <__assert> // all public C++ headers provide the assertion handler
54+
#include <__assert>
5555
#include <__atomic/atomic_base.h>
5656
#include <__atomic/memory_order.h>
5757
#include <__availability>

libcxx/include/bit

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@ namespace std {
6161
6262
*/
6363

64-
#include <__assert> // all public C++ headers provide the assertion handler
6564
#include <__bit/bit_cast.h>
6665
#include <__bit/bit_ceil.h>
6766
#include <__bit/bit_floor.h>

libcxx/include/bitset

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,6 @@ template <size_t N> struct hash<std::bitset<N>>;
129129
#include <__algorithm/count.h>
130130
#include <__algorithm/fill.h>
131131
#include <__algorithm/find.h>
132-
#include <__assert> // all public C++ headers provide the assertion handler
133132
#include <__bit_reference>
134133
#include <__config>
135134
#include <__functional/hash.h>

libcxx/include/cassert

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ Macros:
1616
1717
*/
1818

19-
#include <__assert> // all public C++ headers provide the assertion handler
2019
#include <__config>
2120

2221
// <assert.h> is not provided by libc++

libcxx/include/ccomplex

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
1818
*/
1919

20-
#include <__assert> // all public C++ headers provide the assertion handler
2120
#include <complex>
2221

2322
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)

libcxx/include/cctype

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ int toupper(int c);
3434
} // std
3535
*/
3636

37-
#include <__assert> // all public C++ headers provide the assertion handler
3837
#include <__config>
3938

4039
#include <ctype.h>

libcxx/include/cerrno

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ Macros:
2222
2323
*/
2424

25-
#include <__assert> // all public C++ headers provide the assertion handler
2625
#include <__config>
2726

2827
#include <errno.h>

libcxx/include/cfenv

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,6 @@ int feupdateenv(const fenv_t* envp);
5252
} // std
5353
*/
5454

55-
#include <__assert> // all public C++ headers provide the assertion handler
5655
#include <__config>
5756

5857
#include <fenv.h>

libcxx/include/cfloat

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,6 @@ Macros:
6969
LDBL_TRUE_MIN // C11
7070
*/
7171

72-
#include <__assert> // all public C++ headers provide the assertion handler
7372
#include <__config>
7473

7574
#include <float.h>

libcxx/include/charconv

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,6 @@ namespace std {
6969
7070
*/
7171

72-
#include <__assert> // all public C++ headers provide the assertion handler
7372
#include <__charconv/chars_format.h>
7473
#include <__charconv/from_chars_integral.h>
7574
#include <__charconv/from_chars_result.h>

libcxx/include/chrono

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -825,7 +825,6 @@ constexpr chrono::year operator ""y(unsigned lo
825825

826826
// clang-format on
827827

828-
#include <__assert> // all public C++ headers provide the assertion handler
829828
#include <__chrono/calendar.h>
830829
#include <__chrono/convert_to_timespec.h>
831830
#include <__chrono/convert_to_tm.h>

libcxx/include/cinttypes

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,6 @@ uintmax_t wcstoumax(const wchar_t* restrict nptr, wchar_t** restrict endptr, int
234234
} // std
235235
*/
236236

237-
#include <__assert> // all public C++ headers provide the assertion handler
238237
#include <__config>
239238

240239
// standard-mandated includes

libcxx/include/ciso646

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
1616
*/
1717

18-
#include <__assert> // all public C++ headers provide the assertion handler
1918
#include <__config>
2019

2120
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)

0 commit comments

Comments
 (0)