llvm-project/libcxx/include
Louis Dionne fd66b44ec1 [libc++] Add an assertion in the subrange constructors with a size hint
Those constructors are very easy to misuse -- one could easily think that
the size passed to the constructor is the size of the range to exhibit
from the subrange. Instead, it's a size hint and it's UB to get it wrong.
Hence, when it's cheap to compute the real size of the range, it's cheap
to make sure that the user didn't get it wrong.

Differential Revision: https://reviews.llvm.org/D108827
2021-09-03 16:04:02 -04:00
..
__algorithm [libc++][NFC] Remove useless _LIBCPP_PUSH_MACROS 2021-08-27 12:41:55 -04:00
__charconv [libc++][NFC] split <charconv>. 2021-08-31 18:45:19 +02:00
__compare [libc++] [P1614] Implement std::compare_three_way_result. 2021-08-18 10:01:24 -04:00
__concepts [libc++] Remove an unused internal concept. 2021-09-02 19:27:49 +02:00
__format [libc++][NFC] Move concepts to a subheader. 2021-09-02 19:22:15 +02:00
__functional [libc++] Remove workarounds for [[nodebug]] not working properly on typedefs in older Clangs 2021-09-01 10:51:09 -04:00
__iterator [libc++] Define insert_iterator::iter with ranges::iterator_t. 2021-09-02 16:15:53 -04:00
__memory [libc++] Remove workarounds for [[nodebug]] not working properly on typedefs in older Clangs 2021-09-01 10:51:09 -04:00
__random [libcxx] Move all algorithms into their own headers 2021-06-19 07:49:06 -04:00
__ranges [libc++] Add an assertion in the subrange constructors with a size hint 2021-09-03 16:04:02 -04:00
__support [libcxx] Remove the locale fallback for NuttX 2021-08-31 09:46:55 -04:00
__utility [libc++] Remove workarounds for [[nodebug]] not working properly on typedefs in older Clangs 2021-09-01 10:51:09 -04:00
__variant [libc++][NFC] Remove useless _LIBCPP_PUSH_MACROS 2021-08-27 12:41:55 -04:00
experimental [libc++][NFC] Remove useless _LIBCPP_PUSH_MACROS 2021-08-27 12:41:55 -04:00
ext [libcxx][functional][modular] splices <functional> into modular headers 2021-07-01 14:01:49 -04:00
CMakeLists.txt [libc++][format] Add __format_arg_store. 2021-09-01 19:45:02 +02:00
__availability [libc++][format] Add __format_arg_store. 2021-09-01 19:45:02 +02:00
__bit_reference [libc++] __bit_iterator mustn't rely on deprecated SMF generation. 2021-04-26 16:22:42 -04:00
__bits [libc++] Fix some typos and remove unused macros. NFCI. 2021-04-22 12:02:22 -04:00
__bsd_locale_defaults.h
__bsd_locale_fallbacks.h [libcxx][gardening] Re-order includes across libcxx. 2021-05-21 13:22:10 -07:00
__config [libc++] Remove _LIBCPP_HAS_NO_LONG_LONG in favour of using_if_exists 2021-09-03 14:26:59 -04:00
__config_site.in [libc++] Remove support for CloudABI, which has been abandoned 2021-08-24 14:11:32 -04:00
__debug [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
__errc [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
__function_like.h [libc++][NFC] Remove useless _LIBCPP_PUSH_MACROS 2021-08-27 12:41:55 -04:00
__functional_base [libcxx][functional][modular] splices <functional> into modular headers 2021-07-01 14:01:49 -04:00
__hash_table [libc++] Fix a few warnings in system headers with GCC 2021-07-27 20:09:01 -04:00
__libcpp_version [libcxx] Bump __libcpp_version to 14 after branch 2021-07-28 11:07:06 +00:00
__locale [libcxx] Remove the locale fallback for NuttX 2021-08-31 09:46:55 -04:00
__mutex_base [libc++] Enable `explicit` conversion operators, even in C++03 mode. 2021-06-22 13:35:59 -04:00
__node_handle [libc++][NFC] Remove useless _LIBCPP_PUSH_MACROS 2021-08-27 12:41:55 -04:00
__nullptr [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
__split_buffer [libc++][NFCI] Remove unnecessary exception-throwing base classes 2021-08-19 13:59:57 -04:00
__std_stream [libc++] Alphabetize and include-what-you-use. NFCI. 2021-05-29 19:54:48 -04:00
__string [libcxx][functional][modular] splices <functional> into modular headers 2021-07-01 14:01:49 -04:00
__threading_support [libc++] Define _LIBCPP_NO_NATIVE_SEMAPHORES even outside of pthread 2021-06-03 18:18:42 -04:00
__tree [libcxx][modularisation] splits `<utility>` into self-contained headers 2021-06-25 00:29:01 +00:00
__tuple [libc++] Remove workarounds for [[nodebug]] not working properly on typedefs in older Clangs 2021-09-01 10:51:09 -04:00
__undef_macros
algorithm [libc++][NFC] Remove useless _LIBCPP_PUSH_MACROS 2021-08-27 12:41:55 -04:00
any [libcxx][modularisation] moves <utility> content out of <type_traits> 2021-06-24 17:57:29 +00:00
array [libc++] Remove workarounds for the lack of deduction guides in C++17 2021-08-18 08:57:25 -04:00
atomic [libc++] Remove some workarounds for unsupported GCC and Clang versions 2021-09-01 10:57:14 -04:00
barrier [libc++] Fix a few warnings in system headers with GCC 2021-07-27 20:09:01 -04:00
bit [libc++] Alphabetize and include-what-you-use. NFCI. 2021-05-29 19:54:48 -04:00
bitset [libc++] Alphabetize and include-what-you-use. NFCI. 2021-05-29 19:54:48 -04:00
cassert
ccomplex [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
cctype [libc++] Use the using_if_exists attribute when provided 2021-06-04 09:55:21 -04:00
cerrno [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
cfenv [libc++] Use the using_if_exists attribute when provided 2021-06-04 09:55:21 -04:00
cfloat [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
charconv [libc++][NFC] split <charconv>. 2021-08-31 18:45:19 +02:00
chrono [libc++] Remove some workarounds for unsupported GCC and Clang versions 2021-09-01 10:57:14 -04:00
cinttypes [libc++] Use the using_if_exists attribute when provided 2021-06-04 09:55:21 -04:00
ciso646 [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
climits [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
clocale [libc++] Remove support for CloudABI, which has been abandoned 2021-08-24 14:11:32 -04:00
cmath [libc++] Fix a few warnings in system headers with GCC 2021-07-27 20:09:01 -04:00
codecvt [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
compare [libc++][NFC] Remove unused include in <compare>. 2021-08-19 23:13:44 +00:00
complex [libc++] Alphabetize and include-what-you-use. NFCI. 2021-05-29 19:54:48 -04:00
complex.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
concepts [libc++][NFC] Move concepts to a subheader. 2021-09-02 19:22:15 +02:00
condition_variable [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
csetjmp [libc++] Use the using_if_exists attribute when provided 2021-06-04 09:55:21 -04:00
csignal [libc++] Use the using_if_exists attribute when provided 2021-06-04 09:55:21 -04:00
cstdarg [libc++] Use the using_if_exists attribute when provided 2021-06-04 09:55:21 -04:00
cstdbool [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
cstddef [libc++] Use the using_if_exists attribute when provided 2021-06-04 09:55:21 -04:00
cstdint [libc++] Use the using_if_exists attribute when provided 2021-06-04 09:55:21 -04:00
cstdio [libc++] Remove support for CloudABI, which has been abandoned 2021-08-24 14:11:32 -04:00
cstdlib [libc++] Remove _LIBCPP_HAS_NO_LONG_LONG in favour of using_if_exists 2021-09-03 14:26:59 -04:00
cstring [libc++] Remove support for CloudABI, which has been abandoned 2021-08-24 14:11:32 -04:00
ctgmath [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
ctime [libc++] Remove support for CloudABI, which has been abandoned 2021-08-24 14:11:32 -04:00
ctype.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
cwchar [libc++] Remove _LIBCPP_HAS_NO_LONG_LONG in favour of using_if_exists 2021-09-03 14:26:59 -04:00
cwctype [libc++] Fix incorrect bypassing of <wctype.h> 2021-08-26 13:26:31 -04:00
deque [libc++][NFCI] Remove unnecessary exception-throwing base classes 2021-08-19 13:59:57 -04:00
errno.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
exception [libcxx][modularisation] moves <utility> content out of <type_traits> 2021-06-24 17:57:29 +00:00
execution
fenv.h
filesystem [libc++][nfc] Improve error diagnostics. 2021-07-28 17:57:23 +02:00
float.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
format [libc++][format] Add __format_arg_store. 2021-09-01 19:45:02 +02:00
forward_list [libc++] Remove workarounds for the lack of deduction guides in C++17 2021-08-18 08:57:25 -04:00
fstream [libc++] Remove support for CloudABI, which has been abandoned 2021-08-24 14:11:32 -04:00
functional [libc++] Add the __bind_back and __compose helpers 2021-08-11 10:08:20 -04:00
future [libc++][NFC] Fix include guard for decay_copy.h and remove underscores from the header 2021-08-27 12:45:53 -04:00
initializer_list [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
inttypes.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
iomanip [libc++][NFC] Remove _VSTD:: when not needed. 2021-05-10 18:15:50 +02:00
ios [libc++] Restore `basic_ios`'s implicit conversion to `bool` in C++03 mode. 2021-08-11 13:36:29 -04:00
iosfwd [libc++] s/_LIBCPP_NO_HAS_CHAR8_T/_LIBCPP_HAS_NO_CHAR8_T/g 2021-04-21 12:49:07 -04:00
iostream [libc++] Remove support for CloudABI, which has been abandoned 2021-08-24 14:11:32 -04:00
istream [libc++] Remove some _LIBCPP_CXX03_LANG from iostreams headers. 2021-06-28 12:55:26 -04:00
iterator [libcxx][ranges] Add `unreachable_sentinel`. 2021-08-12 10:11:27 -07:00
latch [libc++] Alphabetize and include-what-you-use. NFCI. 2021-05-29 19:54:48 -04:00
limits [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
limits.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
list [libc++] Remove workarounds for the lack of deduction guides in C++17 2021-08-18 08:57:25 -04:00
locale [libc++] Remove support for CloudABI, which has been abandoned 2021-08-24 14:11:32 -04:00
locale.h [libc++][NFC] Reindent error message 2021-08-23 15:34:51 -04:00
map [libc++] Add missing space in (__map_value_compare&__y) etc. NFCI. 2021-08-31 14:30:20 -04:00
math.h [libc++] Add `__libcpp_copysign` conditionally constexpr overloads. 2021-07-21 16:57:43 +02:00
memory [libc++][NFC] Remove useless _LIBCPP_PUSH_MACROS 2021-08-27 12:41:55 -04:00
module.modulemap [libc++][format] Add __format_arg_store. 2021-09-01 19:45:02 +02:00
mutex [libcxx][modularisation] moves <utility> content out of <type_traits> 2021-06-24 17:57:29 +00:00
new [libc++] Remove some workarounds for unsupported GCC and Clang versions 2021-09-01 10:57:14 -04:00
numbers [libc++][NFC] Remove useless _LIBCPP_PUSH_MACROS 2021-08-27 12:41:55 -04:00
numeric [libc++] Alphabetize header inclusions and include-what-you-use <__debug>. NFCI. 2021-05-18 19:56:30 -04:00
optional [libc++][NFC] Remove useless _LIBCPP_PUSH_MACROS 2021-08-27 12:41:55 -04:00
ostream [libc++] Remove some _LIBCPP_CXX03_LANG from iostreams headers. 2021-06-28 12:55:26 -04:00
queue [libc++] Remove workarounds for the lack of deduction guides in C++17 2021-08-18 08:57:25 -04:00
random [libc++] Fix a few warnings in system headers with GCC 2021-07-27 20:09:01 -04:00
ranges [libc++][NFC] Remove useless _LIBCPP_PUSH_MACROS 2021-08-27 12:41:55 -04:00
ratio [libc++] Alphabetize and include-what-you-use. NFCI. 2021-05-29 19:54:48 -04:00
regex [libc++] Remove workarounds for the lack of deduction guides in C++17 2021-08-18 08:57:25 -04:00
scoped_allocator [libcxx][modularisation] moves <utility> content out of <type_traits> 2021-06-24 17:57:29 +00:00
semaphore [libc++] Fix a few warnings in system headers with GCC 2021-07-27 20:09:01 -04:00
set [libc++] Remove workarounds for the lack of deduction guides in C++17 2021-08-18 08:57:25 -04:00
setjmp.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
shared_mutex [libc++] Alphabetize and include-what-you-use. NFCI. 2021-05-29 19:54:48 -04:00
span [libcxx][modules] protects users from relying on libc++ detail headers (1/n) 2021-07-16 22:39:18 +00:00
sstream [libc++] Remove some _LIBCPP_CXX03_LANG from iostreams headers. 2021-06-28 12:55:26 -04:00
stack [libc++] Remove workarounds for the lack of deduction guides in C++17 2021-08-18 08:57:25 -04:00
stdbool.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
stddef.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
stdexcept [libc++] Alphabetize and include-what-you-use. NFCI. 2021-05-29 19:54:48 -04:00
stdint.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
stdio.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
stdlib.h [libc++] Remove _LIBCPP_HAS_NO_LONG_LONG in favour of using_if_exists 2021-09-03 14:26:59 -04:00
streambuf [libc++] Alphabetize and include-what-you-use. NFCI. 2021-05-29 19:54:48 -04:00
string [libc++] Remove some workarounds for unsupported GCC and Clang versions 2021-09-01 10:57:14 -04:00
string.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
string_view [libc++] [c++2b] [P2166] Prohibit string and string_view construction from nullptr. 2021-07-27 16:20:21 +02:00
strstream [libc++] Alphabetize and include-what-you-use. NFCI. 2021-05-29 19:54:48 -04:00
system_error [libcxx][functional][modular] splices <functional> into modular headers 2021-07-01 14:01:49 -04:00
tgmath.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
thread [libc++][NFC] Fix include guard for decay_copy.h and remove underscores from the header 2021-08-27 12:45:53 -04:00
tuple [libc++] Remove workarounds for [[nodebug]] not working properly on typedefs in older Clangs 2021-09-01 10:51:09 -04:00
type_traits [libc++][NFC] Move concepts to a subheader. 2021-09-02 19:22:15 +02:00
typeindex [libcxx][functional][modular] splices <functional> into modular headers 2021-07-01 14:01:49 -04:00
typeinfo [libc++] Remove unnecessary reinterpret_cast from typeinfo 2021-06-28 10:00:33 -04:00
unordered_map [libc++] Add missing space in (__map_value_compare&__y) etc. NFCI. 2021-08-31 14:30:20 -04:00
unordered_set [libc++] Remove workarounds for the lack of deduction guides in C++17 2021-08-18 08:57:25 -04:00
utility [libcxx][modularisation] splits `<utility>` into self-contained headers 2021-06-25 00:29:01 +00:00
valarray [libc++] Fix result-type and value_type computation in <valarray>. 2021-06-05 12:29:36 -04:00
variant [libc++] Remove some workarounds for unsupported GCC and Clang versions 2021-09-01 10:57:14 -04:00
vector [libc++] Bypass calling exception-throwing functions in the dylib with -fno-exceptions 2021-08-20 08:38:58 -04:00
version [libc++] Remove workarounds for missing __builtin_addressof 2021-08-11 17:05:12 -04:00
wchar.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
wctype.h [libc++] Fix incorrect bypassing of <wctype.h> 2021-08-26 13:26:31 -04:00