From patchwork Thu Jul 26 14:01:50 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jonathan Wakely X-Patchwork-Id: 949689 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=gcc-patches-return-482446-incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="Q5jf7kfb"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 41bv1Q2bkYz9ryl for ; Fri, 27 Jul 2018 00:02:33 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:subject:date:message-id:in-reply-to:references:in-reply-to :references; q=dns; s=default; b=W3B5C1XyI+sXBO6SRSJXWOAK3Eh2bXa 0HCn+d63ysjHCosSwHr4G2JqKp49uGSHuLTABhcoWLArpYJvOp2PMib1Gz4lXJBx HqsyjjRCO+cnjCJfITTx+c1tX7j42YfO+OgoIHejmdM0Q0OR9yq6YRKBmlfYpdRH XRHVD4BCbPsU= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:subject:date:message-id:in-reply-to:references:in-reply-to :references; s=default; bh=zBslzZOHf8+7SL3otF3ZuqgzRZ4=; b=Q5jf7 kfbSzBz+Y0dkgT+BBDydUGzYsNzpdmaBgbE5FR9qPkoO1WIJ++CHvnOD7A1idPUF agRovRjs6Vct0H944ojScpxXSuR03fSKY/OgRDhCgKvbo+E7I6StviECjCitmhbP geMjs6ZzA9aaIUhcrNs9GB6evJIK2gac3nYJl0= Received: (qmail 71324 invoked by alias); 26 Jul 2018 14:02:13 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 71193 invoked by uid 89); 26 Jul 2018 14:02:12 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-25.5 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_NUMSUBJECT, KAM_SHORT, SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=1866, __x, sk:_GLIBCX, sk:_glibcx X-HELO: mx1.redhat.com Received: from mx3-rdu2.redhat.com (HELO mx1.redhat.com) (66.187.233.73) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 26 Jul 2018 14:02:09 +0000 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id E035940216E7; Thu, 26 Jul 2018 14:02:07 +0000 (UTC) Received: from localhost (unknown [10.33.36.95]) by smtp.corp.redhat.com (Postfix) with ESMTP id 85B607C2C; Thu, 26 Jul 2018 14:02:07 +0000 (UTC) From: jwakely@redhat.com To: libstdc++@gcc.gnu.org, gcc-patches@gcc.gnu.org Subject: [PATCH 1/8] Remove dependency on _GLIBCXX_USE_C99_STDINT_TR1 Date: Thu, 26 Jul 2018 15:01:50 +0100 Message-Id: <0f3ab1114f1384f87096b1684c6aab7d7f4bce1e.1532613690.git.jwakely@redhat.com> In-Reply-To: References: In-Reply-To: References: 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. 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 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. 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 + + * 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 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 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 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 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 #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 , 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 #include // 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::digits >= 64, + "Representation type for nanoseconds must have at least 64 bits"); +# define _GLIBCXX_CHRONO_INT64_T long long +#endif + /// nanoseconds - typedef duration nanoseconds; + typedef duration<_GLIBCXX_CHRONO_INT64_T, nano> nanoseconds; /// microseconds - typedef duration microseconds; + typedef duration<_GLIBCXX_CHRONO_INT64_T, micro> microseconds; /// milliseconds - typedef duration milliseconds; + typedef duration<_GLIBCXX_CHRONO_INT64_T, milli> milliseconds; /// seconds - typedef duration seconds; + typedef duration<_GLIBCXX_CHRONO_INT64_T> seconds; /// minutes - typedef duration> minutes; + typedef duration<_GLIBCXX_CHRONO_INT64_T, ratio< 60>> minutes; /// hours - typedef duration> hours; + typedef duration<_GLIBCXX_CHRONO_INT64_T, ratio<3600>> hours; + +#undef _GLIBCXX_CHRONO_INT64_T /// time_point template @@ -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 #include -#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 #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 -#include - -#ifdef _GLIBCXX_USE_C99_STDINT_TR1 +#include // 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 #include -#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 #include -#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 #include -#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 @@ // . #include -#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 #include @@ -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 -#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 #include -#if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1) +#ifdef _GLIBCXX_HAS_GTHREADS #if defined(_GLIBCXX_USE_GET_NPROCS) # include @@ -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::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" }