gcc/libstdc++-v3/include/std
Jonathan Wakely 2fb17d2d90 Avoid undefined shifts in ceil2 operations
For values where the result cannot be represented the shift width would
be equal to the width of the type, which is undefined. Perform two
well-defined shifts instead of one possible undefined shift.

	* include/bits/hashtable_policy.h (__clp2): Fix calculation for LLP64
	targets where sizeof(size_t) > sizeof(long). Avoid undefined shifts
	of the number of bits in the type.
	* include/std/bit (__ceil2): Avoid undefined shifts.
	* testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: Test values with
	the most signifiant bit set.

From-SVN: r263986
2018-08-30 16:07:35 +01:00
..
algorithm Update copyright years. 2018-01-03 11:03:58 +01:00
any Define std::remove_cvref and std::remove_cvref_t for C++2a 2018-05-03 13:40:10 +01:00
array Update copyright years. 2018-01-03 11:03:58 +01:00
atomic Implement P0558R2 changes to std::atomic 2018-05-24 16:28:26 +01:00
bit Avoid undefined shifts in ceil2 operations 2018-08-30 16:07:35 +01:00
bitset Define special members as defaulted 2018-06-08 17:43:14 +01:00
charconv Update copyright years. 2018-01-03 11:03:58 +01:00
chrono Simplify overflow checks in duration literals 2018-08-14 14:55:21 +01:00
codecvt Remove char16_t and char32_t dependency on <stdint.h> 2018-07-26 15:02:01 +01:00
complex Define special members as defaulted 2018-06-08 17:43:14 +01:00
condition_variable Use steady_clock to implement condition_variable::wait_for 2018-08-01 16:39:57 +01:00
deque Define aliases for containers using polymorphic_allocator 2018-08-10 00:25:53 +01:00
filesystem Update copyright years. 2018-01-03 11:03:58 +01:00
forward_list Define aliases for containers using polymorphic_allocator 2018-08-10 00:25:53 +01:00
fstream Add support for opening file streams from wide character strings 2018-05-21 18:18:35 +01:00
functional PR libstdc++/83607 specialize Boyer-Moore searchers for std::byte 2018-01-04 10:21:29 +00:00
future Remove <chrono> dependency on _GLIBCXX_USE_C99_STDINT_TR1 2018-07-26 15:01:55 +01:00
iomanip PR libstdc++/86008 add std::quoted support for string_view 2018-06-06 07:05:07 +01:00
ios Update copyright years. 2018-01-03 11:03:58 +01:00
iosfwd Update copyright years. 2018-01-03 11:03:58 +01:00
iostream Update copyright years. 2018-01-03 11:03:58 +01:00
istream Update copyright years. 2018-01-03 11:03:58 +01:00
iterator Update copyright years. 2018-01-03 11:03:58 +01:00
limits Update copyright years. 2018-01-03 11:03:58 +01:00
list Define aliases for containers using polymorphic_allocator 2018-08-10 00:25:53 +01:00
locale Update copyright years. 2018-01-03 11:03:58 +01:00
map Define aliases for containers using polymorphic_allocator 2018-08-10 00:25:53 +01:00
memory Modify some library internals to work without <stdint.h> 2018-07-26 15:02:05 +01:00
memory_resource Refactor uses-allocator construction 2018-08-15 20:20:02 +01:00
mutex Remove <chrono> dependency on _GLIBCXX_USE_C99_STDINT_TR1 2018-07-26 15:01:55 +01:00
numeric Update copyright years. 2018-01-03 11:03:58 +01:00
optional Refactor std::optional SFINAE constraints 2018-08-20 13:13:25 +01:00
ostream Avoid deprecation warning with -Wsystem-headers 2018-08-16 17:56:40 +01:00
queue Update copyright years. 2018-01-03 11:03:58 +01:00
random Update copyright years. 2018-01-03 11:03:58 +01:00
ratio Remove <chrono> dependency on _GLIBCXX_USE_C99_STDINT_TR1 2018-07-26 15:01:55 +01:00
regex PR libstdc++/87061 remove pmr type aliases for COW strings 2018-08-22 23:54:33 +01:00
scoped_allocator Refactor uses-allocator construction 2018-08-15 20:20:02 +01:00
set Define aliases for containers using polymorphic_allocator 2018-08-10 00:25:53 +01:00
shared_mutex Remove <chrono> dependency on _GLIBCXX_USE_C99_STDINT_TR1 2018-07-26 15:01:55 +01:00
sstream P0935R0 Eradicating unnecessarily explicit default constructors 2018-07-06 13:39:02 +01:00
stack Update copyright years. 2018-01-03 11:03:58 +01:00
stdexcept PR libstdc++/85831 define move constructors and operators for exceptions 2018-07-05 22:29:51 +01:00
streambuf Update copyright years. 2018-01-03 11:03:58 +01:00
string PR libstdc++/87061 remove pmr type aliases for COW strings 2018-08-22 23:54:33 +01:00
string_view Remove char16_t and char32_t dependency on <stdint.h> 2018-07-26 15:02:01 +01:00
system_error Some libstdc++ fixes for -Wdeprecated-copy. 2018-05-18 16:02:14 -04:00
thread Remove <chrono> dependency on _GLIBCXX_USE_C99_STDINT_TR1 2018-07-26 15:01:55 +01:00
tuple PR libstdc++/86963 Remove use of __tuple_base in std::tuple 2018-08-20 14:53:56 +01:00
type_traits Refactor std::optional SFINAE constraints 2018-08-20 13:13:25 +01:00
typeindex Update copyright years. 2018-01-03 11:03:58 +01:00
unordered_map Define aliases for containers using polymorphic_allocator 2018-08-10 00:25:53 +01:00
unordered_set Define aliases for containers using polymorphic_allocator 2018-08-10 00:25:53 +01:00
utility Remove unused <exception> header from <utility> 2018-06-19 18:19:16 +01:00
valarray LWG 3074 make scalar types non-deduced in valarray non-member functions 2018-06-14 20:36:54 +01:00
variant PR libstdc++/86874 fix std::variant::swap regression 2018-08-07 20:13:26 +01:00
vector Define aliases for containers using polymorphic_allocator 2018-08-10 00:25:53 +01:00
version Don't unconditionally define feature test macros in <version> 2018-07-31 23:31:14 +01:00