llvm-project/libcxx/include
Arthur O'Dwyer e130fbe24e [libc++] Some fixes to the <bit> utilities.
Fix __bitop_unsigned_integer and rename to __libcpp_is_unsigned_integer.
There are only five unsigned integer types, so we should just list them out.
Also provide `__libcpp_is_signed_integer`, even though the Standard doesn't
consume that trait anywhere yet.

Notice that `concept uniform_random_bit_generator` is specifically specified
to rely on `concept unsigned_integral` and *not* `__is_unsigned_integer`.
Instantiating `std::ranges::sample` with a type `U` satisfying
`uniform_random_bit_generator` where `unsigned_integral<U::result_type>`
and not `__is_unsigned_integer<U::result_type>` is simply IFNDR.

Orthogonally, fix an undefined behavior in std::countr_zero(__uint128_t).

Orthogonally, improve tests for the <bit> manipulation functions.
It was these new tests that detected the bug in countr_zero.

Differential Revision: https://reviews.llvm.org/D102328
2021-05-18 19:56:30 -04:00
..
__iterator [libcxx][ranges] Add `contiguous_iterator`. 2021-05-14 15:27:40 -07:00
__memory [libc++] Remove more unnecessary _VSTD:: from type names. NFCI. 2021-05-11 12:23:55 -04:00
__ranges [libcxx][ranges] Fix `ranges::empty` when begin, end, and empty members are provided. 2021-05-13 10:07:57 -07:00
__support [SystemZ][z/OS] correct rc and errno within nanosleep() 2021-04-06 15:36:58 +00:00
__utility [libc++] Adds __utility/to_underlying.h. 2021-04-25 13:27:19 +02:00
experimental [libc++] Remove more unnecessary _VSTD:: from type names. NFCI. 2021-05-11 12:23:55 -04:00
ext [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
CMakeLists.txt [libcxx][ranges] Add ranges::empty CPO. 2021-05-10 17:14:39 -07:00
__availability [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04: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 Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
__bsd_locale_fallbacks.h Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
__config [libc++] Disentangle std::pointer_safety 2021-05-03 14:33:49 -04:00
__config_site.in [libc++] Make LIBCXX_ENABLE_FILESYSTEM fully consistent 2021-01-19 14:15:48 -05: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
__functional_03 [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
__functional_base [libc++] s/_VSTD::declval/declval/g. NFCI. 2021-05-11 12:23:55 -04:00
__functional_base_03 [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
__hash_table [libcxx] NFC. Fix misprint unodered -> unordered 2021-05-13 09:57:29 +02:00
__libcpp_version [libcxx] Update include/__libcpp_version to match include/__config 2021-01-27 15:16:55 +00:00
__locale [libc++] s/_LIBCPP_NO_HAS_CHAR8_T/_LIBCPP_HAS_NO_CHAR8_T/g 2021-04-21 12:49:07 -04:00
__mutex_base [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
__node_handle [libc++] Fix some typos and remove unused macros. NFCI. 2021-04-22 12:02:22 -04:00
__nullptr [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
__split_buffer [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
__std_stream [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
__string [libc++] s/_LIBCPP_NO_HAS_CHAR8_T/_LIBCPP_HAS_NO_CHAR8_T/g 2021-04-21 12:49:07 -04:00
__threading_support [libcxx] Implement semaphores for windows 2021-03-05 10:48:59 +02:00
__tree [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
__tuple [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
__undef_macros Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
algorithm [libc++] Remove more unnecessary _VSTD:: from type names. NFCI. 2021-05-11 12:23:55 -04:00
any [libc++] Include <__config> first in all standard headers. 2021-03-22 19:01:18 -04:00
array [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
atomic [libc++] s/_LIBCPP_NO_HAS_CHAR8_T/_LIBCPP_HAS_NO_CHAR8_T/g 2021-04-21 12:49:07 -04:00
barrier [libc++] Remove hard tabs, U+00AD, and U+200B from all libc++ headers. NFCI. 2021-04-17 17:03:20 -04:00
bit [libc++] Some fixes to the <bit> utilities. 2021-05-18 19:56:30 -04:00
bitset [libc++] Remove if-else to make branch predictor happy 2021-04-24 16:09:52 +02:00
cassert Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
ccomplex [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
cctype [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
cerrno [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
cfenv [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
cfloat [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
charconv [libc++][nfc] remove duplicated __to_unsigned. 2021-05-12 21:09:49 +02:00
chrono [libc++] s/_VSTD::chrono/chrono/g. NFCI. 2021-05-11 12:23:55 -04:00
cinttypes [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -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++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
cmath [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
codecvt [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
compare [libcxx] modifies `_CmpUnspecifiedParam` ignore types outside its domain 2021-05-13 00:45:39 +00:00
complex [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
complex.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
concepts [libc++] s/_VSTD::declval/declval/g. NFCI. 2021-05-11 12:23:55 -04:00
condition_variable [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
csetjmp [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
csignal [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
cstdarg [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
cstdbool [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
cstddef [libc++] s/_LIBCPP_NO_HAS_CHAR8_T/_LIBCPP_HAS_NO_CHAR8_T/g 2021-04-21 12:49:07 -04:00
cstdint [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
cstdio [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
cstdlib [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
cstring [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
ctgmath [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
ctime [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
ctype.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
cwchar [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
cwctype [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
deque [libcxx] NFC. Correct wordings of _LIBCPP_ASSERT debug messages 2021-05-12 13:49:57 +02:00
errno.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
exception [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
execution [pstl][libc++] Provide uglified header names for interface headers 2019-08-06 21:11:24 +00:00
fenv.h Mark fenv.h as a system header before the #include_next directive 2019-03-29 16:03:57 +00:00
filesystem [libc++] Remove the special logic for "noexcept iterators" in basic_string. 2021-04-26 16:22:43 -04:00
float.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
format [libc++][NFC] Remove _VSTD:: when not needed. 2021-05-10 18:15:50 +02:00
forward_list [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
fstream [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
functional [libc++] Remove more unnecessary _VSTD:: from type names. NFCI. 2021-05-11 12:23:55 -04:00
future [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -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++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -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++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
istream [libc++] s/_VSTD::declval/declval/g. NFCI. 2021-05-11 12:23:55 -04:00
iterator [libcxx] NFC. Correct wordings of _LIBCPP_ASSERT debug messages 2021-05-12 13:49:57 +02:00
latch [libc++] [docs] Mark P1865 as complete since 11.0 as it was implemented together with P1135. Fix synopses in <barrier> and <latch>. 2020-12-06 15:36:52 +01: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 [libcxx] NFC. Add missed articles to _LIPCPP_ASSERT messages in <list> 2021-05-17 10:15:43 +02:00
locale [libc++] Eliminate macro _LIBCPP_UNUSED_VAR. NFCI. 2021-04-22 12:02:22 -04:00
locale.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
map [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
math.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
memory [libc++] Remove more unnecessary _VSTD:: from type names. NFCI. 2021-05-11 12:23:55 -04:00
module.modulemap [libc++] Move <__sso_allocator> out of include/ into src/. NFCI. 2021-05-05 16:20:52 -04:00
mutex [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
new [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
numbers [libcxx] cleans up __cpp_concepts mess 2021-02-26 18:43:40 +00:00
numeric [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
optional [libcxx] NFC. Correct wordings of _LIBCPP_ASSERT debug messages 2021-05-12 13:49:57 +02:00
ostream [libc++] s/_VSTD::declval/declval/g. NFCI. 2021-05-11 12:23:55 -04:00
queue [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
random [libc++] Remove more unnecessary _VSTD:: from type names. NFCI. 2021-05-11 12:23:55 -04:00
ranges [libcxx][ranges] Add ranges::empty CPO. 2021-05-10 17:14:39 -07:00
ratio [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
regex [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
scoped_allocator [libc++] s/_VSTD::declval/declval/g. NFCI. 2021-05-11 12:23:55 -04:00
semaphore [libc++] Fix some one-off typos in comments. NFCI. 2020-12-14 09:54:58 -05:00
set [libc++][NFC] Remove _VSTD:: when not needed. 2021-05-10 18:15:50 +02:00
setjmp.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
shared_mutex [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
span [libc++] [LIBCXX-DEBUG-FIXME] <span>, like <string_view>, has no use for debug iterators. 2021-04-30 23:06:45 -04:00
sstream [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
stack [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -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++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -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++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
streambuf [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
string [libc++] [LIBCXX-DEBUG-FIXME] Fix an iterator-invalidation issue in string::assign. 2021-05-05 16:20:53 -04:00
string.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
string_view [libc++] s/_LIBCPP_NO_HAS_CHAR8_T/_LIBCPP_HAS_NO_CHAR8_T/g 2021-04-21 12:49:07 -04:00
strstream [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
system_error [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
tgmath.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
thread [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
tuple [libc++] Fix QoI bug with construction of std::tuple involving std::any 2021-05-04 16:42:36 -04:00
type_traits [libc++] Some fixes to the <bit> utilities. 2021-05-18 19:56:30 -04:00
typeindex [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
typeinfo [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
unordered_map [libc++] Fix some typos and remove unused macros. NFCI. 2021-04-22 12:02:22 -04:00
unordered_set [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
utility [libc++] Adds __utility/to_underlying.h. 2021-04-25 13:27:19 +02:00
valarray [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
variant [libc++] s/_VSTD::declval/declval/g. NFCI. 2021-05-11 12:23:55 -04:00
vector [libcxx] NFC. Correct wordings of _LIBCPP_ASSERT debug messages 2021-05-12 13:49:57 +02:00
version [libc++] s/_LIBCPP_NO_HAS_CHAR8_T/_LIBCPP_HAS_NO_CHAR8_T/g 2021-04-21 12:49:07 -04:00
wchar.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
wctype.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00