Skip to content

Commit f3aa434

Browse files
committed
[libc++] Clean up includes of <__assert>
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 341d3a5 commit f3aa434

Some content is hidden

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

122 files changed

+129
-239
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/__charconv/from_chars_integral.h

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

13+
#include <__assert>
1314
#include <__algorithm/copy_n.h>
1415
#include <__charconv/from_chars_result.h>
1516
#include <__charconv/traits.h>

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
@@ -10,6 +10,7 @@
1010
#ifndef _LIBCPP___CHARCONV_TO_CHARS_INTEGRAL_H
1111
#define _LIBCPP___CHARCONV_TO_CHARS_INTEGRAL_H
1212

13+
#include <__assert>
1314
#include <__algorithm/copy_n.h>
1415
#include <__bit/countl.h>
1516
#include <__charconv/tables.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
@@ -339,87 +339,6 @@ _LIBCPP_HARDENING_MODE_EXTENSIVE, \
339339
_LIBCPP_HARDENING_MODE_DEBUG
340340
# endif
341341

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

425344
# define _LIBCPP_TOSTRING2(x) #x

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
@@ -1780,7 +1780,6 @@ template <class BidirectionalIterator, class Compare>
17801780
17811781
*/
17821782

1783-
#include <__assert> // all public C++ headers provide the assertion handler
17841783
#include <__config>
17851784
#include <version>
17861785

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
@@ -804,7 +804,6 @@ constexpr chrono::year operator ""y(unsigned lo
804804

805805
// clang-format on
806806

807-
#include <__assert> // all public C++ headers provide the assertion handler
808807
#include <__chrono/calendar.h>
809808
#include <__chrono/convert_to_timespec.h>
810809
#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)

libcxx/include/climits

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ Macros:
3737
3838
*/
3939

40-
#include <__assert> // all public C++ headers provide the assertion handler
4140
#include <__config>
4241

4342
#include <limits.h>

libcxx/include/clocale

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

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

4039
#include <locale.h>

libcxx/include/cmath

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,6 @@ constexpr long double lerp(long double a, long double b, long double t) noexcept
304304
305305
*/
306306

307-
#include <__assert> // all public C++ headers provide the assertion handler
308307
#include <__config>
309308
#include <__type_traits/enable_if.h>
310309
#include <__type_traits/is_arithmetic.h>

libcxx/include/codecvt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,6 @@ class codecvt_utf8_utf16
5454
5555
*/
5656

57-
#include <__assert> // all public C++ headers provide the assertion handler
5857
#include <__config>
5958
#include <__locale>
6059
#include <version>

libcxx/include/compare

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,6 @@ namespace std {
140140
}
141141
*/
142142

143-
#include <__assert> // all public C++ headers provide the assertion handler
144143
#include <__compare/common_comparison_category.h>
145144
#include <__compare/compare_partial_order_fallback.h>
146145
#include <__compare/compare_strong_order_fallback.h>

0 commit comments

Comments
 (0)