forked from OSchip/llvm-project
[libc++] Ensure that all public C++ headers include <__assert>
This patch changes the requirement for getting the declaration of the assertion handler from including <__assert> to including any public C++ header of the library. Note that C compatibility headers are excluded because we don't implement all the C headers ourselves -- some of them are taken straight from the C library, like assert.h. It also adds a generated test to check it. Furthermore, this new generated test is designed in a way that will make it possible to replace almost all the existing test-generation scripts with this system in upcoming patches. Differential Revision: https://reviews.llvm.org/D122506
This commit is contained in:
parent
3fda0edc51
commit
385cc25a53
|
@ -169,7 +169,7 @@ and ``operator delete``. For example:
|
|||
.. code-block:: cpp
|
||||
|
||||
// In HelloWorldHandler.cpp
|
||||
#include <__assert> // must include <__assert> before defining the handler
|
||||
#include <version> // must include any libc++ header before defining the handler (C compatibility headers excluded)
|
||||
|
||||
void std::__libcpp_assertion_handler(char const* file, int line, char const* expression, char const* message) {
|
||||
std::printf("Assertion %s failed at %s:%d, more info: %s", expression, file, line, message);
|
||||
|
|
|
@ -733,6 +733,7 @@ template <class BidirectionalIterator, class Compare>
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__bits>
|
||||
#include <__config>
|
||||
#include <__debug>
|
||||
|
|
|
@ -80,6 +80,7 @@ namespace std {
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__availability>
|
||||
#include <__config>
|
||||
#include <__utility/forward.h>
|
||||
|
|
|
@ -112,7 +112,7 @@ template <size_t I, class T, size_t N> const T&& get(const array<T, N>&&) noexce
|
|||
#include <__algorithm/fill_n.h>
|
||||
#include <__algorithm/lexicographical_compare.h>
|
||||
#include <__algorithm/swap_ranges.h>
|
||||
#include <__assert>
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <__tuple>
|
||||
#include <__utility/integer_sequence.h>
|
||||
|
|
|
@ -518,6 +518,7 @@ template <class T>
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__availability>
|
||||
#include <__chrono/duration.h>
|
||||
#include <__config>
|
||||
|
|
|
@ -45,6 +45,7 @@ namespace std
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__availability>
|
||||
#include <__config>
|
||||
#include <__thread/timed_backoff_policy.h>
|
||||
|
|
|
@ -61,7 +61,7 @@ namespace std {
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert>
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__bit/bit_cast.h>
|
||||
#include <__bit/byteswap.h>
|
||||
#include <__bits> // __libcpp_clz
|
||||
|
|
|
@ -113,6 +113,7 @@ template <size_t N> struct hash<std::bitset<N>>;
|
|||
*/
|
||||
|
||||
#include <__algorithm/fill.h>
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__bit_reference>
|
||||
#include <__config>
|
||||
#include <__functional/unary_function.h>
|
||||
|
|
|
@ -16,6 +16,7 @@ Macros:
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <assert.h>
|
||||
|
||||
|
|
|
@ -17,12 +17,11 @@
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <complex>
|
||||
|
||||
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
|
||||
# pragma GCC system_header
|
||||
#endif
|
||||
|
||||
// hh 080623 Created
|
||||
|
||||
#endif // _LIBCPP_CCOMPLEX
|
||||
|
|
|
@ -34,6 +34,7 @@ int toupper(int c);
|
|||
} // std
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <ctype.h>
|
||||
|
||||
|
|
|
@ -22,6 +22,7 @@ Macros:
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <errno.h>
|
||||
|
||||
|
|
|
@ -52,6 +52,7 @@ int feupdateenv(const fenv_t* envp);
|
|||
} // std
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <fenv.h>
|
||||
|
||||
|
|
|
@ -69,6 +69,7 @@ Macros:
|
|||
LDBL_TRUE_MIN // C11
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <float.h>
|
||||
|
||||
|
|
|
@ -77,7 +77,7 @@ namespace std {
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert>
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__availability>
|
||||
#include <__bits>
|
||||
#include <__charconv/chars_format.h>
|
||||
|
|
|
@ -694,6 +694,7 @@ constexpr chrono::year operator ""y(unsigned lo
|
|||
} // std
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__chrono/calendar.h>
|
||||
#include <__chrono/convert_to_timespec.h>
|
||||
#include <__chrono/duration.h>
|
||||
|
|
|
@ -234,6 +234,7 @@ uintmax_t wcstoumax(const wchar_t* restrict nptr, wchar_t** restrict endptr, int
|
|||
} // std
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <cstdint>
|
||||
#include <inttypes.h>
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
|
||||
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
|
||||
|
|
|
@ -37,6 +37,7 @@ Macros:
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <limits.h>
|
||||
|
||||
|
|
|
@ -34,6 +34,7 @@ lconv* localeconv();
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <locale.h>
|
||||
|
||||
|
|
|
@ -304,6 +304,7 @@ constexpr long double lerp(long double a, long double b, long double t) noexcept
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <math.h>
|
||||
#include <type_traits>
|
||||
|
|
|
@ -54,6 +54,7 @@ class codecvt_utf8_utf16
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <__locale>
|
||||
#include <version>
|
||||
|
|
|
@ -140,6 +140,7 @@ namespace std {
|
|||
}
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__compare/common_comparison_category.h>
|
||||
#include <__compare/compare_partial_order_fallback.h>
|
||||
#include <__compare/compare_strong_order_fallback.h>
|
||||
|
|
|
@ -231,6 +231,7 @@ template<class T> complex<T> tanh (const complex<T>&);
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <cmath>
|
||||
#include <iosfwd>
|
||||
|
|
|
@ -129,6 +129,7 @@ namespace std {
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__concepts/arithmetic.h>
|
||||
#include <__concepts/assignable.h>
|
||||
#include <__concepts/boolean_testable.h>
|
||||
|
|
|
@ -106,6 +106,7 @@ public:
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <__mutex_base>
|
||||
#include <memory>
|
||||
|
|
|
@ -38,6 +38,7 @@ struct suspend_always;
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <__coroutine/coroutine_handle.h>
|
||||
#include <__coroutine/coroutine_traits.h>
|
||||
|
|
|
@ -30,6 +30,7 @@ void longjmp(jmp_buf env, int val);
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <setjmp.h>
|
||||
|
||||
|
|
|
@ -39,6 +39,7 @@ int raise(int sig);
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <signal.h>
|
||||
|
||||
|
|
|
@ -31,6 +31,7 @@ Types:
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <stdarg.h>
|
||||
|
||||
|
|
|
@ -19,6 +19,7 @@ Macros:
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
|
||||
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
|
||||
|
|
|
@ -33,6 +33,7 @@ Types:
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <stddef.h>
|
||||
#include <version>
|
||||
|
|
|
@ -140,6 +140,7 @@ Types:
|
|||
} // std
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <stdint.h>
|
||||
|
||||
|
|
|
@ -95,6 +95,7 @@ void perror(const char* s);
|
|||
} // std
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <stdio.h>
|
||||
|
||||
|
|
|
@ -81,6 +81,7 @@ void *aligned_alloc(size_t alignment, size_t size); // C11
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <stdlib.h>
|
||||
|
||||
|
|
|
@ -56,6 +56,7 @@ size_t strlen(const char* s);
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <string.h>
|
||||
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <ccomplex>
|
||||
#include <cmath>
|
||||
|
||||
|
|
|
@ -45,6 +45,7 @@ int timespec_get( struct timespec *ts, int base); // C++17
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <time.h>
|
||||
|
||||
|
|
|
@ -34,6 +34,7 @@ size_t c32rtomb(char* s, char32_t c32, mbstate_t* ps);
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <uchar.h>
|
||||
|
||||
|
|
|
@ -102,6 +102,7 @@ size_t wcsrtombs(char* restrict dst, const wchar_t** restrict src, size_t len,
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <cwctype>
|
||||
#include <wchar.h>
|
||||
|
|
|
@ -49,6 +49,7 @@ wctrans_t wctrans(const char* property);
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <cctype>
|
||||
#include <wctype.h>
|
||||
|
|
|
@ -169,7 +169,7 @@ template <class T, class Allocator, class Predicate>
|
|||
#include <__algorithm/remove.h>
|
||||
#include <__algorithm/remove_if.h>
|
||||
#include <__algorithm/unwrap_iter.h>
|
||||
#include <__assert>
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <__iterator/iterator_traits.h>
|
||||
#include <__split_buffer>
|
||||
|
|
|
@ -76,6 +76,7 @@ template <class E> void rethrow_if_nested(const E& e);
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__availability>
|
||||
#include <__config>
|
||||
#include <__memory/addressof.h>
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
#ifndef _LIBCPP_EXECUTION
|
||||
#define _LIBCPP_EXECUTION
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <version>
|
||||
|
||||
|
|
|
@ -31,6 +31,7 @@ ForwardIterator search(ForwardIterator first, ForwardIterator last,
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__debug>
|
||||
#include <algorithm>
|
||||
#include <experimental/__config>
|
||||
|
|
|
@ -45,7 +45,7 @@ template <class P> struct hash<coroutine_handle<P>>;
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert>
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <cstddef>
|
||||
#include <experimental/__config>
|
||||
#include <functional>
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
|
||||
#ifndef _LIBCPP_EXPERIMENTAL_DEQUE
|
||||
#define _LIBCPP_EXPERIMENTAL_DEQUE
|
||||
|
||||
/*
|
||||
experimental/deque synopsis
|
||||
|
||||
|
@ -28,6 +29,7 @@ namespace pmr {
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <deque>
|
||||
#include <experimental/__config>
|
||||
#include <experimental/memory_resource>
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
|
||||
#ifndef _LIBCPP_EXPERIMENTAL_FORWARD_LIST
|
||||
#define _LIBCPP_EXPERIMENTAL_FORWARD_LIST
|
||||
|
||||
/*
|
||||
experimental/forward_list synopsis
|
||||
|
||||
|
@ -28,6 +29,7 @@ namespace pmr {
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <experimental/__config>
|
||||
#include <experimental/memory_resource>
|
||||
#include <forward_list>
|
||||
|
|
|
@ -60,6 +60,7 @@ inline namespace fundamentals_v1 {
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__debug>
|
||||
#include <__memory/uses_allocator.h>
|
||||
#include <array>
|
||||
|
|
|
@ -52,6 +52,7 @@ namespace std {
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__memory/addressof.h>
|
||||
#include <__utility/forward.h>
|
||||
#include <__utility/move.h>
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
|
||||
#ifndef _LIBCPP_EXPERIMENTAL_LIST
|
||||
#define _LIBCPP_EXPERIMENTAL_LIST
|
||||
|
||||
/*
|
||||
experimental/list synopsis
|
||||
|
||||
|
@ -28,6 +29,7 @@ namespace pmr {
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <experimental/__config>
|
||||
#include <experimental/memory_resource>
|
||||
#include <list>
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
|
||||
#ifndef _LIBCPP_EXPERIMENTAL_MAP
|
||||
#define _LIBCPP_EXPERIMENTAL_MAP
|
||||
|
||||
/*
|
||||
experimental/map synopsis
|
||||
|
||||
|
@ -33,6 +34,7 @@ namespace pmr {
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <experimental/__config>
|
||||
#include <experimental/memory_resource>
|
||||
#include <map>
|
||||
|
|
|
@ -64,7 +64,7 @@ namespace pmr {
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert>
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__tuple>
|
||||
#include <__utility/move.h>
|
||||
#include <cstddef>
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
|
||||
#ifndef _LIBCPP_EXPERIMENTAL_PROPAGATE_CONST
|
||||
#define _LIBCPP_EXPERIMENTAL_PROPAGATE_CONST
|
||||
|
||||
/*
|
||||
propagate_const synopsis
|
||||
|
||||
|
@ -106,6 +107,7 @@
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__utility/move.h>
|
||||
#include <__utility/swap.h>
|
||||
#include <experimental/__config>
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
|
||||
#ifndef _LIBCPP_EXPERIMENTAL_REGEX
|
||||
#define _LIBCPP_EXPERIMENTAL_REGEX
|
||||
|
||||
/*
|
||||
experimental/regex synopsis
|
||||
|
||||
|
@ -35,6 +36,7 @@ namespace pmr {
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <experimental/__config>
|
||||
#include <experimental/memory_resource>
|
||||
#include <experimental/string>
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
|
||||
#ifndef _LIBCPP_EXPERIMENTAL_SET
|
||||
#define _LIBCPP_EXPERIMENTAL_SET
|
||||
|
||||
/*
|
||||
experimental/set synopsis
|
||||
|
||||
|
@ -33,6 +34,7 @@ namespace pmr {
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <experimental/__config>
|
||||
#include <experimental/memory_resource>
|
||||
#include <set>
|
||||
|
|
|
@ -649,6 +649,7 @@ public:
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <array>
|
||||
#include <cstddef>
|
||||
#include <experimental/__config>
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
|
||||
#ifndef _LIBCPP_EXPERIMENTAL_STRING
|
||||
#define _LIBCPP_EXPERIMENTAL_STRING
|
||||
|
||||
/*
|
||||
experimental/string synopsis
|
||||
|
||||
|
@ -37,6 +38,7 @@ namespace pmr {
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <experimental/__config>
|
||||
#include <experimental/memory_resource>
|
||||
#include <string>
|
||||
|
|
|
@ -68,6 +68,7 @@ inline namespace fundamentals_v1 {
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <experimental/__config>
|
||||
|
||||
#if _LIBCPP_STD_VER > 11
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
|
||||
#ifndef _LIBCPP_EXPERIMENTAL_UNORDERED_MAP
|
||||
#define _LIBCPP_EXPERIMENTAL_UNORDERED_MAP
|
||||
|
||||
/*
|
||||
experimental/unordered_map synopsis
|
||||
|
||||
|
@ -39,6 +40,7 @@ namespace pmr {
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <experimental/__config>
|
||||
#include <experimental/memory_resource>
|
||||
#include <unordered_map>
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
|
||||
#ifndef _LIBCPP_EXPERIMENTAL_UNORDERED_SET
|
||||
#define _LIBCPP_EXPERIMENTAL_UNORDERED_SET
|
||||
|
||||
/*
|
||||
experimental/unordered_set synopsis
|
||||
|
||||
|
@ -33,6 +34,7 @@ namespace pmr {
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <experimental/__config>
|
||||
#include <experimental/memory_resource>
|
||||
#include <unordered_set>
|
||||
|
|
|
@ -30,6 +30,7 @@ inline namespace fundamentals_v1 {
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <experimental/__config>
|
||||
#include <utility>
|
||||
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
|
||||
#ifndef _LIBCPP_EXPERIMENTAL_VECTOR
|
||||
#define _LIBCPP_EXPERIMENTAL_VECTOR
|
||||
|
||||
/*
|
||||
experimental/vector synopsis
|
||||
|
||||
|
@ -28,6 +29,7 @@ namespace pmr {
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <experimental/__config>
|
||||
#include <experimental/memory_resource>
|
||||
#include <vector>
|
||||
|
|
|
@ -201,9 +201,10 @@ template <class Key, class T, class Hash, class Pred, class Alloc>
|
|||
|
||||
*/
|
||||
|
||||
#include <__algorithm/is_permutation.h>
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <__hash_table>
|
||||
#include <algorithm>
|
||||
#include <ext/__hash>
|
||||
#include <functional>
|
||||
#include <stdexcept>
|
||||
|
|
|
@ -192,9 +192,10 @@ template <class Value, class Hash, class Pred, class Alloc>
|
|||
|
||||
*/
|
||||
|
||||
#include <__algorithm/is_permutation.h>
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <__hash_table>
|
||||
#include <algorithm>
|
||||
#include <ext/__hash>
|
||||
#include <functional>
|
||||
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
//===----------------------------------------------------------------------===//
|
||||
#ifndef _LIBCPP_FILESYSTEM
|
||||
#define _LIBCPP_FILESYSTEM
|
||||
|
||||
/*
|
||||
filesystem synopsis
|
||||
|
||||
|
@ -238,6 +239,7 @@ inline constexpr bool std::ranges::enable_view<std::filesystem::recursive_direct
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <__filesystem/copy_options.h>
|
||||
#include <__filesystem/directory_entry.h>
|
||||
|
|
|
@ -117,6 +117,7 @@ namespace std {
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
// Make sure all feature-test macros are available.
|
||||
#include <version>
|
||||
// Enable the contents of the header only when libc++ was built with LIBCXX_ENABLE_INCOMPLETE_FEATURES.
|
||||
|
|
|
@ -182,6 +182,7 @@ template <class T, class Allocator, class Predicate>
|
|||
#include <__algorithm/comp.h>
|
||||
#include <__algorithm/lexicographical_compare.h>
|
||||
#include <__algorithm/min.h>
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <__utility/forward.h>
|
||||
#include <initializer_list>
|
||||
|
|
|
@ -180,7 +180,7 @@ typedef basic_fstream<wchar_t> wfstream;
|
|||
*/
|
||||
|
||||
#include <__algorithm/max.h>
|
||||
#include <__assert>
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__availability>
|
||||
#include <__config>
|
||||
#include <__locale>
|
||||
|
|
|
@ -491,6 +491,7 @@ POLICY: For non-variadic implementations, the number of arguments is limited
|
|||
*/
|
||||
|
||||
#include <__algorithm/search.h>
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__compare/compare_three_way.h>
|
||||
#include <__config>
|
||||
#include <__debug>
|
||||
|
|
|
@ -361,7 +361,7 @@ template <class R, class Alloc> struct uses_allocator<packaged_task<R>, Alloc>;
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert>
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__availability>
|
||||
#include <__chrono/duration.h>
|
||||
#include <__chrono/time_point.h>
|
||||
|
|
|
@ -42,6 +42,7 @@ template<class E> const E* end(initializer_list<E> il) noexcept; // constexpr in
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <cstddef>
|
||||
|
||||
|
|
|
@ -42,6 +42,7 @@ template <class charT, class traits, class Allocator>
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <__string>
|
||||
#include <istream>
|
||||
|
|
|
@ -210,6 +210,7 @@ storage-class-specifier const error_category& iostream_category() noexcept;
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <__ios/fpos.h>
|
||||
#include <__locale>
|
||||
|
|
|
@ -94,6 +94,7 @@ using u32streampos = fpos<char_traits<char32_t>::state_type>;
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <__mbstate_t.h>
|
||||
#include <version>
|
||||
|
|
|
@ -33,6 +33,7 @@ extern wostream wclog;
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <ios>
|
||||
#include <istream>
|
||||
|
|
|
@ -158,6 +158,7 @@ template <class Stream, class T>
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <__utility/forward.h>
|
||||
#include <ostream>
|
||||
|
|
|
@ -634,6 +634,7 @@ template <class E> constexpr const E* data(initializer_list<E> il) noexcept;
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <__debug>
|
||||
#include <__iterator/access.h>
|
||||
|
|
|
@ -40,6 +40,7 @@ namespace std
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__availability>
|
||||
#include <__config>
|
||||
#include <atomic>
|
||||
|
|
|
@ -101,6 +101,8 @@ template<> class numeric_limits<cv long double>;
|
|||
} // std
|
||||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <type_traits>
|
||||
|
||||
|
|
|
@ -184,7 +184,7 @@ template <class T, class Allocator, class Predicate>
|
|||
#include <__algorithm/equal.h>
|
||||
#include <__algorithm/lexicographical_compare.h>
|
||||
#include <__algorithm/min.h>
|
||||
#include <__assert>
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <__debug>
|
||||
#include <__utility/forward.h>
|
||||
|
|
|
@ -192,7 +192,7 @@ template <class charT> class messages_byname;
|
|||
#include <__algorithm/max.h>
|
||||
#include <__algorithm/reverse.h>
|
||||
#include <__algorithm/unwrap_iter.h>
|
||||
#include <__assert>
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <__debug>
|
||||
#include <__locale>
|
||||
|
|
|
@ -530,7 +530,7 @@ erase_if(multimap<Key, T, Compare, Allocator>& c, Predicate pred); // C++20
|
|||
|
||||
#include <__algorithm/equal.h>
|
||||
#include <__algorithm/lexicographical_compare.h>
|
||||
#include <__assert>
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <__functional/is_transparent.h>
|
||||
#include <__iterator/iterator_traits.h>
|
||||
|
|
|
@ -804,6 +804,7 @@ void* align(size_t alignment, size_t size, void*& ptr, size_t& space);
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <__memory/addressof.h>
|
||||
#include <__memory/allocation_guard.h>
|
||||
|
|
|
@ -186,6 +186,7 @@ template<class Callable, class ...Args>
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <__mutex_base>
|
||||
#include <__threading_support>
|
||||
|
|
|
@ -86,6 +86,7 @@ void operator delete[](void* ptr, void*) noexcept;
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__availability>
|
||||
#include <__config>
|
||||
#include <cstddef>
|
||||
|
|
|
@ -58,6 +58,7 @@ namespace std::numbers {
|
|||
}
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <concepts>
|
||||
#include <type_traits>
|
||||
|
|
|
@ -144,6 +144,7 @@ template<class T>
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <cmath> // for isnormal
|
||||
#include <functional>
|
||||
|
|
|
@ -158,7 +158,7 @@ template<class T>
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert>
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__availability>
|
||||
#include <__concepts/invocable.h>
|
||||
#include <__config>
|
||||
|
|
|
@ -134,6 +134,7 @@ template <class Stream, class T>
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <bitset>
|
||||
#include <ios>
|
||||
|
|
|
@ -220,6 +220,7 @@ template <class T, class Container, class Compare>
|
|||
#include <__algorithm/make_heap.h>
|
||||
#include <__algorithm/pop_heap.h>
|
||||
#include <__algorithm/push_heap.h>
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <__iterator/iterator_traits.h>
|
||||
#include <__memory/uses_allocator.h>
|
||||
|
|
|
@ -1677,6 +1677,7 @@ class piecewise_linear_distribution
|
|||
} // std
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <__random/bernoulli_distribution.h>
|
||||
#include <__random/binomial_distribution.h>
|
||||
|
|
|
@ -230,6 +230,7 @@ namespace std {
|
|||
}
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <__ranges/access.h>
|
||||
#include <__ranges/all.h>
|
||||
|
|
|
@ -77,6 +77,7 @@ typedef ratio<1000000000000000000000000, 1> yotta; // not supported
|
|||
}
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <climits>
|
||||
#include <cstdint>
|
||||
|
|
|
@ -763,7 +763,7 @@ typedef regex_token_iterator<wstring::const_iterator> wsregex_token_iterator;
|
|||
*/
|
||||
|
||||
#include <__algorithm/find.h>
|
||||
#include <__assert>
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <__iterator/wrap_iter.h>
|
||||
#include <__locale>
|
||||
|
|
|
@ -109,6 +109,7 @@ template <class OuterA1, class OuterA2, class... InnerAllocs>
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <__utility/forward.h>
|
||||
#include <memory>
|
||||
|
|
|
@ -45,6 +45,7 @@ using binary_semaphore = counting_semaphore<1>;
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__availability>
|
||||
#include <__chrono/time_point.h>
|
||||
#include <__config>
|
||||
|
|
|
@ -473,7 +473,7 @@ erase_if(multiset<Key, Compare, Allocator>& c, Predicate pred); // C++20
|
|||
|
||||
#include <__algorithm/equal.h>
|
||||
#include <__algorithm/lexicographical_compare.h>
|
||||
#include <__assert>
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <__functional/is_transparent.h>
|
||||
#include <__iterator/iterator_traits.h>
|
||||
|
|
|
@ -122,6 +122,7 @@ template <class Mutex>
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__availability>
|
||||
#include <__config>
|
||||
#include <version>
|
||||
|
|
|
@ -127,7 +127,7 @@ template<class R>
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert>
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <__debug>
|
||||
#include <__iterator/concepts.h>
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue