Modify some library internals to work without <stdint.h>
commit7810f69529c918b5eec7790ee3ebc0431cae876c
authorredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 26 Jul 2018 14:02:05 +0000 (26 14:02 +0000)
committerredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 26 Jul 2018 14:02:05 +0000 (26 14:02 +0000)
treec660dc5850b246f90c589c6f332a70c8e3c86214
parent2681510db63a94fdb8f14c50bf0265dcdfceef65
Modify some library internals to work without <stdint.h>

std::__detail::__clp2 used uint_fast32_t and uint_fast64_t without
checking _GLIBCXX_USE_C99_STDINT_TR1 which was a potential bug. A
simpler implementation based on the new std::__ceil2 code performs
better and doesn't depend on <stdint.h> types.

std::align and other C++11 functions in <memory> where unnecessarily
missing when _GLIBCXX_USE_C99_STDINT_TR1 was not defined.

* include/bits/hashtable_policy.h (__detail::__clp2): Use faster
implementation that doesn't depend on <stdint.h> types.
* include/std/memory (align) [!_GLIBCXX_USE_C99_STDINT_TR1]: Use
std::size_t when std::uintptr_t is not usable.
[!_GLIBCXX_USE_C99_STDINT_TR1] (pointer_safety, declare_reachable)
(undeclare_reachable, declare_no_pointers, undeclare_no_pointers):
Define independent of _GLIBCXX_USE_C99_STDINT_TR1.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263003 138bc75d-0d04-0410-961f-82ee72b054a4
libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/hashtable_policy.h
libstdc++-v3/include/std/memory