aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2018-07-26 14:01:55 +0000
committerJonathan Wakely <jwakely@redhat.com>2018-07-26 14:01:55 +0000
commitbda1c7a1a83fce9aecfcd9a0b02a3acfd1dc59ed (patch)
tree55e1acb98e009a524192df17448affcee3fff247
parent330d0e70b36104004678f82bbc2ac2288d18a02d (diff)
Remove <chrono> dependency on _GLIBCXX_USE_C99_STDINT_TR1
By adding fallback definitions of std::intmax_t and std::uintmax_t it's possible to define <ratio> without _GLIBCXX_USE_C99_STDINT_TR1. This in turn allows most of <chrono> to be defined, which removes the dependency on _GLIBCXX_USE_C99_STDINT_TR1 for all of the C++11 concurrency features. The compiler defines __INTMAX_TYPE__ and __UINTMAX_TYPE__ unconditionally so it should be safe to rely on them. * include/bits/atomic_futex.h [!_GLIBCXX_USE_C99_STDINT_TR1] (__atomic_futex_unsigned_base): Remove dependency on _GLIBCXX_USE_C99_STDINT_TR1 macro. * include/bits/unique_lock.h [!_GLIBCXX_USE_C99_STDINT_TR1] (unique_lock): Remove dependency on _GLIBCXX_USE_C99_STDINT_TR1. * include/c_global/cstdint [!_GLIBCXX_USE_C99_STDINT_TR1] (intmax_t) (uintmax_t): Define using predefined macros. * include/std/chrono [!_GLIBCXX_USE_C99_STDINT_TR1] (duration) (time_point, system_clock, high_resolution_clock, steady_clock): Remove dependency on _GLIBCXX_USE_C99_STDINT_TR1 macro. (nanoseconds, microseconds, milliseconds, seconds, minutes, hours): [!_GLIBCXX_USE_C99_STDINT_TR1]: Define using __INT64_TYPE__ or long long when <stdint.h> is not usable. * include/std/condition_variable [!_GLIBCXX_USE_C99_STDINT_TR1] (condition_variable, condition_variable_any): Remove dependency on _GLIBCXX_USE_C99_STDINT_TR1. * include/std/future [!_GLIBCXX_USE_C99_STDINT_TR1] (future, promise) (packaged_task, async): Likewise. * include/std/mutex [!_GLIBCXX_USE_C99_STDINT_TR1] (recursive_mutex) (timed_mutex, recursive_timed_mutex, try_lock, lock, scoped_lock) (once_flag, call_once): Likewise. * include/std/ratio [!_GLIBCXX_USE_C99_STDINT_TR1] (ratio): Likewise. * include/std/shared_mutex [!_GLIBCXX_USE_C99_STDINT_TR1] (shared_mutex, shared_timed_mutex, shared_lock): Likewise. * include/std/thread [!_GLIBCXX_USE_C99_STDINT_TR1] (thread) (this_thread::get_id, this_thread::yield, this_thread::sleep_for) (this_thread::sleep_until): Likewise. * src/c++11/chrono.cc: Remove dependency on _GLIBCXX_USE_C99_STDINT_TR1 macro. * src/c++11/condition_variable.cc: Likewise. * src/c++11/futex.cc: Likewise. * src/c++11/future.cc: Likewise. * src/c++11/mutex.cc: Likewise. * src/c++11/thread.cc: Likewise. * testsuite/20_util/duration/literals/range_neg.cc: Adjust dg-error. * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise. * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise. * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise. * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise. * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@263001 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--libstdc++-v3/ChangeLog43
-rw-r--r--libstdc++-v3/include/bits/atomic_futex.h4
-rw-r--r--libstdc++-v3/include/bits/unique_lock.h4
-rw-r--r--libstdc++-v3/include/c_global/cstdint10
-rw-r--r--libstdc++-v3/include/std/chrono28
-rw-r--r--libstdc++-v3/include/std/condition_variable6
-rw-r--r--libstdc++-v3/include/std/future4
-rw-r--r--libstdc++-v3/include/std/mutex3
-rw-r--r--libstdc++-v3/include/std/ratio6
-rw-r--r--libstdc++-v3/include/std/shared_mutex3
-rw-r--r--libstdc++-v3/include/std/thread4
-rw-r--r--libstdc++-v3/src/c++11/chrono.cc4
-rw-r--r--libstdc++-v3/src/c++11/condition_variable.cc4
-rw-r--r--libstdc++-v3/src/c++11/futex.cc6
-rw-r--r--libstdc++-v3/src/c++11/future.cc4
-rw-r--r--libstdc++-v3/src/c++11/mutex.cc4
-rw-r--r--libstdc++-v3/src/c++11/thread.cc4
-rw-r--r--libstdc++-v3/testsuite/20_util/duration/literals/range_neg.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg1.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg2.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg3.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/ratio/cons/cons_overflow_neg.cc6
-rw-r--r--libstdc++-v3/testsuite/20_util/ratio/operations/ops_overflow_neg.cc6
23 files changed, 97 insertions, 64 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index f0855a6cd91..a3665ee8b6a 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,46 @@
+2018-07-26 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/atomic_futex.h [!_GLIBCXX_USE_C99_STDINT_TR1]
+ (__atomic_futex_unsigned_base): Remove dependency on
+ _GLIBCXX_USE_C99_STDINT_TR1 macro.
+ * include/bits/unique_lock.h [!_GLIBCXX_USE_C99_STDINT_TR1]
+ (unique_lock): Remove dependency on _GLIBCXX_USE_C99_STDINT_TR1.
+ * include/c_global/cstdint [!_GLIBCXX_USE_C99_STDINT_TR1] (intmax_t)
+ (uintmax_t): Define using predefined macros.
+ * include/std/chrono [!_GLIBCXX_USE_C99_STDINT_TR1] (duration)
+ (time_point, system_clock, high_resolution_clock, steady_clock): Remove
+ dependency on _GLIBCXX_USE_C99_STDINT_TR1 macro.
+ (nanoseconds, microseconds, milliseconds, seconds, minutes, hours):
+ [!_GLIBCXX_USE_C99_STDINT_TR1]: Define using __INT64_TYPE__ or
+ long long when <stdint.h> is not usable.
+ * include/std/condition_variable [!_GLIBCXX_USE_C99_STDINT_TR1]
+ (condition_variable, condition_variable_any): Remove dependency on
+ _GLIBCXX_USE_C99_STDINT_TR1.
+ * include/std/future [!_GLIBCXX_USE_C99_STDINT_TR1] (future, promise)
+ (packaged_task, async): Likewise.
+ * include/std/mutex [!_GLIBCXX_USE_C99_STDINT_TR1] (recursive_mutex)
+ (timed_mutex, recursive_timed_mutex, try_lock, lock, scoped_lock)
+ (once_flag, call_once): Likewise.
+ * include/std/ratio [!_GLIBCXX_USE_C99_STDINT_TR1] (ratio): Likewise.
+ * include/std/shared_mutex [!_GLIBCXX_USE_C99_STDINT_TR1]
+ (shared_mutex, shared_timed_mutex, shared_lock): Likewise.
+ * include/std/thread [!_GLIBCXX_USE_C99_STDINT_TR1] (thread)
+ (this_thread::get_id, this_thread::yield, this_thread::sleep_for)
+ (this_thread::sleep_until): Likewise.
+ * src/c++11/chrono.cc: Remove dependency on
+ _GLIBCXX_USE_C99_STDINT_TR1 macro.
+ * src/c++11/condition_variable.cc: Likewise.
+ * src/c++11/futex.cc: Likewise.
+ * src/c++11/future.cc: Likewise.
+ * src/c++11/mutex.cc: Likewise.
+ * src/c++11/thread.cc: Likewise.
+ * testsuite/20_util/duration/literals/range_neg.cc: Adjust dg-error.
+ * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
+ * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
+ * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
+ * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.
+ * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
+
2018-07-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
PR libstdc++/77691
diff --git a/libstdc++-v3/include/bits/atomic_futex.h b/libstdc++-v3/include/bits/atomic_futex.h
index ad9437da4e2..ecf5b02031a 100644
--- a/libstdc++-v3/include/bits/atomic_futex.h
+++ b/libstdc++-v3/include/bits/atomic_futex.h
@@ -48,7 +48,7 @@ namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
-#if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1)
+#ifdef _GLIBCXX_HAS_GTHREADS
#if defined(_GLIBCXX_HAVE_LINUX_FUTEX) && ATOMIC_INT_LOCK_FREE > 1
struct __atomic_futex_unsigned_base
{
@@ -282,7 +282,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
};
#endif // _GLIBCXX_HAVE_LINUX_FUTEX && ATOMIC_INT_LOCK_FREE > 1
-#endif // _GLIBCXX_HAS_GTHREADS && _GLIBCXX_USE_C99_STDINT_TR1
+#endif // _GLIBCXX_HAS_GTHREADS
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace std
diff --git a/libstdc++-v3/include/bits/unique_lock.h b/libstdc++-v3/include/bits/unique_lock.h
index e0e7400b516..59140dad13a 100644
--- a/libstdc++-v3/include/bits/unique_lock.h
+++ b/libstdc++-v3/include/bits/unique_lock.h
@@ -86,7 +86,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// XXX calling thread owns mutex
}
-#ifdef _GLIBCXX_USE_C99_STDINT_TR1
template<typename _Clock, typename _Duration>
unique_lock(mutex_type& __m,
const chrono::time_point<_Clock, _Duration>& __atime)
@@ -100,7 +99,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
: _M_device(std::__addressof(__m)),
_M_owns(_M_device->try_lock_for(__rtime))
{ }
-#endif
~unique_lock()
{
@@ -159,7 +157,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
}
}
-#ifdef _GLIBCXX_USE_C99_STDINT_TR1
template<typename _Clock, typename _Duration>
bool
try_lock_until(const chrono::time_point<_Clock, _Duration>& __atime)
@@ -189,7 +186,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
return _M_owns;
}
}
-#endif
void
unlock()
diff --git a/libstdc++-v3/include/c_global/cstdint b/libstdc++-v3/include/c_global/cstdint
index 9c0ca701cbe..556f42c5b7f 100644
--- a/libstdc++-v3/include/c_global/cstdint
+++ b/libstdc++-v3/include/c_global/cstdint
@@ -41,10 +41,9 @@
# include <stdint.h>
#endif
-#ifdef _GLIBCXX_USE_C99_STDINT_TR1
-
namespace std
{
+#ifdef _GLIBCXX_USE_C99_STDINT_TR1
using ::int8_t;
using ::int16_t;
using ::int32_t;
@@ -80,9 +79,12 @@ namespace std
using ::uintmax_t;
using ::uintptr_t;
-} // namespace std
-
+#else // !_GLIBCXX_USE_C99_STDINT_TR1
+ // Define the minimum needed for <ratio>, <chrono> etc.
+ using intmax_t = __INTMAX_TYPE__;
+ using uintmax_t = __UINTMAX_TYPE__;
#endif // _GLIBCXX_USE_C99_STDINT_TR1
+} // namespace std
#endif // C++11
diff --git a/libstdc++-v3/include/std/chrono b/libstdc++-v3/include/std/chrono
index d6d9dcae411..da03fdccce4 100644
--- a/libstdc++-v3/include/std/chrono
+++ b/libstdc++-v3/include/std/chrono
@@ -41,8 +41,6 @@
#include <ctime>
#include <bits/parse_numbers.h> // for literals support.
-#ifdef _GLIBCXX_USE_C99_STDINT_TR1
-
namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
@@ -593,23 +591,35 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
const duration<_Rep2, _Period2>& __rhs)
{ return !(__lhs < __rhs); }
+#ifdef _GLIBCXX_USE_C99_STDINT_TR1
+# define _GLIBCXX_CHRONO_INT64_T int64_t
+#elif defined __INT64_TYPE__
+# define _GLIBCXX_CHRONO_INT64_T __INT64_TYPE__
+#else
+ static_assert(std::numeric_limits<unsigned long long>::digits >= 64,
+ "Representation type for nanoseconds must have at least 64 bits");
+# define _GLIBCXX_CHRONO_INT64_T long long
+#endif
+
/// nanoseconds
- typedef duration<int64_t, nano> nanoseconds;
+ typedef duration<_GLIBCXX_CHRONO_INT64_T, nano> nanoseconds;
/// microseconds
- typedef duration<int64_t, micro> microseconds;
+ typedef duration<_GLIBCXX_CHRONO_INT64_T, micro> microseconds;
/// milliseconds
- typedef duration<int64_t, milli> milliseconds;
+ typedef duration<_GLIBCXX_CHRONO_INT64_T, milli> milliseconds;
/// seconds
- typedef duration<int64_t> seconds;
+ typedef duration<_GLIBCXX_CHRONO_INT64_T> seconds;
/// minutes
- typedef duration<int64_t, ratio< 60>> minutes;
+ typedef duration<_GLIBCXX_CHRONO_INT64_T, ratio< 60>> minutes;
/// hours
- typedef duration<int64_t, ratio<3600>> hours;
+ typedef duration<_GLIBCXX_CHRONO_INT64_T, ratio<3600>> hours;
+
+#undef _GLIBCXX_CHRONO_INT64_T
/// time_point
template<typename _Clock, typename _Dur>
@@ -980,8 +990,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace std
-#endif //_GLIBCXX_USE_C99_STDINT_TR1
-
#endif // C++11
#endif //_GLIBCXX_CHRONO
diff --git a/libstdc++-v3/include/std/condition_variable b/libstdc++-v3/include/std/condition_variable
index 88ab775f771..3f690c81799 100644
--- a/libstdc++-v3/include/std/condition_variable
+++ b/libstdc++-v3/include/std/condition_variable
@@ -45,7 +45,7 @@
#include <bits/shared_ptr.h>
#include <bits/cxxabi_forced.h>
-#if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1)
+#if defined(_GLIBCXX_HAS_GTHREADS)
namespace std _GLIBCXX_VISIBILITY(default)
{
@@ -319,8 +319,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace
-#endif // _GLIBCXX_HAS_GTHREADS && _GLIBCXX_USE_C99_STDINT_TR1
-
+#endif // _GLIBCXX_HAS_GTHREADS
#endif // C++11
-
#endif // _GLIBCXX_CONDITION_VARIABLE
diff --git a/libstdc++-v3/include/std/future b/libstdc++-v3/include/std/future
index 937c05ef2b2..843adbf5205 100644
--- a/libstdc++-v3/include/std/future
+++ b/libstdc++-v3/include/std/future
@@ -192,7 +192,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
future<__async_result_of<_Fn, _Args...>>
async(_Fn&& __fn, _Args&&... __args);
-#if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1)
+#if defined(_GLIBCXX_HAS_GTHREADS)
/// Base class and enclosing scope.
struct __future_base
@@ -1745,7 +1745,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
}
#endif // _GLIBCXX_ASYNC_ABI_COMPAT
-#endif // _GLIBCXX_HAS_GTHREADS && _GLIBCXX_USE_C99_STDINT_TR1
+#endif // _GLIBCXX_HAS_GTHREADS
// @} group futures
_GLIBCXX_END_NAMESPACE_VERSION
diff --git a/libstdc++-v3/include/std/mutex b/libstdc++-v3/include/std/mutex
index 9318a8d1a5d..477aa867f86 100644
--- a/libstdc++-v3/include/std/mutex
+++ b/libstdc++-v3/include/std/mutex
@@ -50,8 +50,6 @@
# include <bits/std_function.h>
#endif
-#ifdef _GLIBCXX_USE_C99_STDINT_TR1
-
namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
@@ -703,7 +701,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// @} group mutexes
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace
-#endif // _GLIBCXX_USE_C99_STDINT_TR1
#endif // C++11
diff --git a/libstdc++-v3/include/std/ratio b/libstdc++-v3/include/std/ratio
index 9593a1a387c..829a583ab2a 100644
--- a/libstdc++-v3/include/std/ratio
+++ b/libstdc++-v3/include/std/ratio
@@ -36,9 +36,7 @@
#else
#include <type_traits>
-#include <cstdint>
-
-#ifdef _GLIBCXX_USE_C99_STDINT_TR1
+#include <cstdint> // intmax_t, uintmax_t
namespace std _GLIBCXX_VISIBILITY(default)
{
@@ -548,8 +546,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace
-#endif //_GLIBCXX_USE_C99_STDINT_TR1
-
#endif // C++11
#endif //_GLIBCXX_RATIO
diff --git a/libstdc++-v3/include/std/shared_mutex b/libstdc++-v3/include/std/shared_mutex
index 6a81e751014..dce97f48a3f 100644
--- a/libstdc++-v3/include/std/shared_mutex
+++ b/libstdc++-v3/include/std/shared_mutex
@@ -46,7 +46,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* @{
*/
-#ifdef _GLIBCXX_USE_C99_STDINT_TR1
#ifdef _GLIBCXX_HAS_GTHREADS
#if __cplusplus >= 201703L
@@ -676,8 +675,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
swap(shared_lock<_Mutex>& __x, shared_lock<_Mutex>& __y) noexcept
{ __x.swap(__y); }
-#endif // _GLIBCXX_USE_C99_STDINT_TR1
-
// @} group mutexes
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace
diff --git a/libstdc++-v3/include/std/thread b/libstdc++-v3/include/std/thread
index 13acd6a3091..407de1ba333 100644
--- a/libstdc++-v3/include/std/thread
+++ b/libstdc++-v3/include/std/thread
@@ -44,7 +44,7 @@
#include <bits/invoke.h>
#include <bits/gthr.h>
-#if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1)
+#if defined(_GLIBCXX_HAS_GTHREADS)
namespace std _GLIBCXX_VISIBILITY(default)
{
@@ -407,7 +407,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace
-#endif // _GLIBCXX_HAS_GTHREADS && _GLIBCXX_USE_C99_STDINT_TR1
+#endif // _GLIBCXX_HAS_GTHREADS
#endif // C++11
diff --git a/libstdc++-v3/src/c++11/chrono.cc b/libstdc++-v3/src/c++11/chrono.cc
index 8d4e830c7ca..199c748bcff 100644
--- a/libstdc++-v3/src/c++11/chrono.cc
+++ b/libstdc++-v3/src/c++11/chrono.cc
@@ -25,8 +25,6 @@
#include <bits/c++config.h>
#include <chrono>
-#ifdef _GLIBCXX_USE_C99_STDINT_TR1
-
// Conditional inclusion of sys/time.h for gettimeofday
#if !defined(_GLIBCXX_USE_CLOCK_MONOTONIC) && \
!defined(_GLIBCXX_USE_CLOCK_REALTIME) && \
@@ -101,5 +99,3 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace std
-
-#endif // _GLIBCXX_USE_C99_STDINT_TR1
diff --git a/libstdc++-v3/src/c++11/condition_variable.cc b/libstdc++-v3/src/c++11/condition_variable.cc
index 2ad7e049c45..c500c719571 100644
--- a/libstdc++-v3/src/c++11/condition_variable.cc
+++ b/libstdc++-v3/src/c++11/condition_variable.cc
@@ -25,7 +25,7 @@
#include <condition_variable>
#include <cstdlib>
-#if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1)
+#ifdef _GLIBCXX_HAS_GTHREADS
namespace std _GLIBCXX_VISIBILITY(default)
{
@@ -155,4 +155,4 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace
-#endif // _GLIBCXX_HAS_GTHREADS && _GLIBCXX_USE_C99_STDINT_TR1
+#endif // _GLIBCXX_HAS_GTHREADS
diff --git a/libstdc++-v3/src/c++11/futex.cc b/libstdc++-v3/src/c++11/futex.cc
index f5000aa77b3..278a5a80902 100644
--- a/libstdc++-v3/src/c++11/futex.cc
+++ b/libstdc++-v3/src/c++11/futex.cc
@@ -23,7 +23,7 @@
// <http://www.gnu.org/licenses/>.
#include <bits/atomic_futex.h>
-#if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1)
+#ifdef _GLIBCXX_HAS_GTHREADS
#if defined(_GLIBCXX_HAVE_LINUX_FUTEX) && ATOMIC_INT_LOCK_FREE > 1
#include <chrono>
#include <climits>
@@ -95,5 +95,5 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_GLIBCXX_END_NAMESPACE_VERSION
}
-#endif
-#endif
+#endif // defined(_GLIBCXX_HAVE_LINUX_FUTEX) && ATOMIC_INT_LOCK_FREE > 1
+#endif // _GLIBCXX_HAS_GTHREADS
diff --git a/libstdc++-v3/src/c++11/future.cc b/libstdc++-v3/src/c++11/future.cc
index 553c65ebd13..01b614691aa 100644
--- a/libstdc++-v3/src/c++11/future.cc
+++ b/libstdc++-v3/src/c++11/future.cc
@@ -83,7 +83,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
const char*
future_error::what() const noexcept { return logic_error::what(); }
-#if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1)
+#ifdef _GLIBCXX_HAS_GTHREADS
__future_base::_Result_base::_Result_base() = default;
__future_base::_Result_base::~_Result_base() = default;
@@ -110,7 +110,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_M_cb = &_Make_ready::_S_run;
__at_thread_exit(this);
}
-#endif
+#endif // _GLIBCXX_HAS_GTHREADS
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace std
diff --git a/libstdc++-v3/src/c++11/mutex.cc b/libstdc++-v3/src/c++11/mutex.cc
index b62bf87063b..2df8dc1874d 100644
--- a/libstdc++-v3/src/c++11/mutex.cc
+++ b/libstdc++-v3/src/c++11/mutex.cc
@@ -24,7 +24,7 @@
#include <mutex>
-#if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1)
+#ifdef _GLIBCXX_HAS_GTHREADS
#ifndef _GLIBCXX_HAVE_TLS
namespace
{
@@ -94,4 +94,4 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace std
-#endif // _GLIBCXX_HAS_GTHREADS && _GLIBCXX_USE_C99_STDINT_TR1
+#endif // _GLIBCXX_HAS_GTHREADS
diff --git a/libstdc++-v3/src/c++11/thread.cc b/libstdc++-v3/src/c++11/thread.cc
index 8238817c2e9..c62cb71bf99 100644
--- a/libstdc++-v3/src/c++11/thread.cc
+++ b/libstdc++-v3/src/c++11/thread.cc
@@ -29,7 +29,7 @@
#include <cerrno>
#include <cxxabi_forced.h>
-#if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1)
+#ifdef _GLIBCXX_HAS_GTHREADS
#if defined(_GLIBCXX_USE_GET_NPROCS)
# include <sys/sysinfo.h>
@@ -218,4 +218,4 @@ namespace this_thread
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace std
-#endif // _GLIBCXX_HAS_GTHREADS && _GLIBCXX_USE_C99_STDINT_TR1
+#endif // _GLIBCXX_HAS_GTHREADS
diff --git a/libstdc++-v3/testsuite/20_util/duration/literals/range_neg.cc b/libstdc++-v3/testsuite/20_util/duration/literals/range_neg.cc
index d1be74493c9..f28f2f6a4e8 100644
--- a/libstdc++-v3/testsuite/20_util/duration/literals/range_neg.cc
+++ b/libstdc++-v3/testsuite/20_util/duration/literals/range_neg.cc
@@ -26,6 +26,6 @@ test01()
// std::numeric_limits<int64_t>::max() == 9223372036854775807;
auto h = 9223372036854775808h;
- // { dg-error "cannot be represented" "" { target *-*-* } 898 }
+ // { dg-error "cannot be represented" "" { target *-*-* } 908 }
}
// { dg-prune-output "in constexpr expansion" } // needed for -O0
diff --git a/libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg1.cc b/libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg1.cc
index 2638afebadc..37949434c3c 100644
--- a/libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg1.cc
+++ b/libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg1.cc
@@ -30,4 +30,4 @@ void test01()
test_type d; // { dg-error "required from here" }
}
-// { dg-error "rep cannot be a duration" "" { target *-*-* } 318 }
+// { dg-error "rep cannot be a duration" "" { target *-*-* } 316 }
diff --git a/libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg2.cc b/libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg2.cc
index 5b561e19db3..ecd3c81530b 100644
--- a/libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg2.cc
+++ b/libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg2.cc
@@ -31,5 +31,5 @@ void test01()
test_type d; // { dg-error "required from here" }
}
-// { dg-error "must be a specialization of ratio" "" { target *-*-* } 319 }
+// { dg-error "must be a specialization of ratio" "" { target *-*-* } 317 }
// { dg-prune-output "not a member" }
diff --git a/libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg3.cc b/libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg3.cc
index a66ea1ab172..d2c16675096 100644
--- a/libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg3.cc
+++ b/libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg3.cc
@@ -32,4 +32,4 @@ void test01()
test_type d; // { dg-error "required from here" }
}
-// { dg-error "period must be positive" "" { target *-*-* } 321 }
+// { dg-error "period must be positive" "" { target *-*-* } 319 }
diff --git a/libstdc++-v3/testsuite/20_util/ratio/cons/cons_overflow_neg.cc b/libstdc++-v3/testsuite/20_util/ratio/cons/cons_overflow_neg.cc
index 4589bccc9f7..7e876e87985 100644
--- a/libstdc++-v3/testsuite/20_util/ratio/cons/cons_overflow_neg.cc
+++ b/libstdc++-v3/testsuite/20_util/ratio/cons/cons_overflow_neg.cc
@@ -45,7 +45,7 @@ test04()
std::ratio<1,0> r1 __attribute__((unused)); // { dg-error "required from here" }
}
-// { dg-error "denominator cannot be zero" "" { target *-*-* } 265 }
-// { dg-error "out of range" "" { target *-*-* } 266 }
-// { dg-error "overflow in constant expression" "" { target *-*-* } 61 }
+// { dg-error "denominator cannot be zero" "" { target *-*-* } 263 }
+// { dg-error "out of range" "" { target *-*-* } 264 }
+// { dg-error "overflow in constant expression" "" { target *-*-* } 59 }
// { dg-prune-output "not a member" }
diff --git a/libstdc++-v3/testsuite/20_util/ratio/operations/ops_overflow_neg.cc b/libstdc++-v3/testsuite/20_util/ratio/operations/ops_overflow_neg.cc
index 1979257dade..2bd9247b8aa 100644
--- a/libstdc++-v3/testsuite/20_util/ratio/operations/ops_overflow_neg.cc
+++ b/libstdc++-v3/testsuite/20_util/ratio/operations/ops_overflow_neg.cc
@@ -41,10 +41,10 @@ test02()
// { dg-error "required from here" "" { target *-*-* } 28 }
// { dg-error "expected initializer" "" { target *-*-* } 35 }
// { dg-error "expected initializer" "" { target *-*-* } 37 }
-// { dg-error "overflow in addition" "" { target *-*-* } 452 }
+// { dg-error "overflow in addition" "" { target *-*-* } 450 }
+// { dg-error "overflow in multiplication" "" { target *-*-* } 95 }
// { dg-error "overflow in multiplication" "" { target *-*-* } 97 }
// { dg-error "overflow in multiplication" "" { target *-*-* } 99 }
-// { dg-error "overflow in multiplication" "" { target *-*-* } 101 }
-// { dg-error "overflow in constant expression" "" { target *-*-* } 108 }
+// { dg-error "overflow in constant expression" "" { target *-*-* } 106 }
// { dg-prune-output "out of range" }
// { dg-prune-output "not usable in a constant expression" }