diff options
author | Arthur O'Dwyer <arthur.j.odwyer@gmail.com> | 2021-05-12 13:09:26 -0400 |
---|---|---|
committer | Arthur O'Dwyer <arthur.j.odwyer@gmail.com> | 2021-05-18 19:56:30 -0400 |
commit | e130fbe24e5801feba4526ef5b190acbefba7d91 (patch) | |
tree | 03546e08695f38214d50065a2adf6101a6571a5c /llvm/lib/CodeGen/MachineBasicBlock.cpp | |
parent | a32e39a75b8137ee20c623887cbc1b4865e49b94 (diff) | |
download | llvm-e130fbe24e5801feba4526ef5b190acbefba7d91.zip llvm-e130fbe24e5801feba4526ef5b190acbefba7d91.tar.gz llvm-e130fbe24e5801feba4526ef5b190acbefba7d91.tar.bz2 |
[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
Diffstat (limited to 'llvm/lib/CodeGen/MachineBasicBlock.cpp')
0 files changed, 0 insertions, 0 deletions