[PATCH 7/8] Remove dg-require-cstdint directive from tests

2018-07-26 Thread jwakely
From: Jonathan Wakely Tests for components which are no longer dependent on _GLIBCXX_USE_C99_STDINT_TR1 do not need to require . * testsuite/30_threads/recursive_mutex/cons/1.cc: Likewise. * testsuite/30_threads/recursive_mutex/cons/assign_neg.cc: Likewise. * testsuite/30

[PATCH 8/8] Add missing dg-require-cstdint directives to tests

2018-07-26 Thread jwakely
From: Jonathan Wakely * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Add dg-require-cstdint directive. * testsuite/20_util/allocator/overaligned.cc: Likewise. * testsuite/20_util/any/cons/aligned.cc: Likewise. * testsuite/20_util/monotonic_buffer_re

[PATCH 5/8] Remove dg-require-cstdint directive from tests

2018-07-26 Thread jwakely
From: Jonathan Wakely Tests for components which are no longer dependent on _GLIBCXX_USE_C99_STDINT_TR1 do not need to require . * testsuite/18_support/numeric_limits/char16_32_t.cc: Qualify names from namespace std. * testsuite/20_util/align/2.cc: Remove dg-require-cstdi

[PATCH 6/8] Remove dg-require-cstdint directive from tests

2018-07-26 Thread jwakely
From: Jonathan Wakely Tests for components which are no longer dependent on _GLIBCXX_USE_C99_STDINT_TR1 do not need to require . * testsuite/30_threads/async/42819.cc: Remove dg-require-cstdint directive. * testsuite/30_threads/async/49668.cc: Likewise. * testsuit

[PATCH 4/8] Add missing checks for _GLIBCXX_USE_C99_STDINT_TR1

2018-07-26 Thread jwakely
From: Jonathan Wakely The throw_allocator extension depends on which depends on _GLIBCXX_USE_C99_STDINT_TR1. The Transactional Memory support uses fixed-width integer types from . * include/ext/throw_allocator.h [!_GLIBCXX_USE_C99_STDINT_TR1] (random_condition, throw_value_rand

[PATCH 2/8] Remove char16_t and char32_t dependency on

2018-07-26 Thread jwakely
From: Jonathan Wakely The char16_t and char32_t types are automatically defined by the compiler and do not depend on support in . The char_traits specializations depend on uint_leastNN_t but can be made to work anyway by using the predefined macros, or as a last resort make_unsigned. * i

[PATCH 3/8] Modify some library internals to work without

2018-07-26 Thread jwakely
From: Jonathan Wakely 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 types. std::align and other C++11 functions

[PATCH 0/8] Reduce/remove dependencies on _GLIBCXX_USE_C99_STDINT_TR1

2018-07-26 Thread jwakely
From: Jonathan Wakely Currently huge swathes of the library are only enabled conditionally by: #ifdef _GLIBCXX_USE_C99_STDINT_TR1 This macro was created as part of the TR1 implementation, to detect whether the C++98 compiler has access to a working header from C99. In C++11 that header is requ

[PATCH 1/8] Remove dependency on _GLIBCXX_USE_C99_STDINT_TR1

2018-07-26 Thread jwakely
From: Jonathan Wakely By adding fallback definitions of std::intmax_t and std::uintmax_t it's possible to define without _GLIBCXX_USE_C99_STDINT_TR1. This in turn allows most of to be defined, which removes the dependency on _GLIBCXX_USE_C99_STDINT_TR1 for all of the C++11 concurrency features.