From: Jonathan Wakely Date: Sat, 16 Mar 2013 19:45:53 +0000 (+0000) Subject: re PR libstdc++/56002 ([C++11] allow generic locks to be used without requiring platt... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=3442f18d26ec2224d3aeef72cba25540beaa68e8;p=gcc.git re PR libstdc++/56002 ([C++11] allow generic locks to be used without requiring plattform support for threads) PR libstdc++/56002 * include/std/mutex (lock_guard, unique_lock, lock): Define without depending on _GLIBCXX_HAS_GTHREADS. * testsuite/30_threads/lock_guard/cons/1.cc: Run on all targets. From-SVN: r196706 --- diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index e8211a307d0..8e4c99c280c 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,10 @@ +2013-03-16 Jonathan Wakely + + PR libstdc++/56002 + * include/std/mutex (lock_guard, unique_lock, lock): Define without + depending on _GLIBCXX_HAS_GTHREADS. + * testsuite/30_threads/lock_guard/cons/1.cc: Run on all targets. + 2013-03-16 Jonathan Wakely PR libstdc++/56492 diff --git a/libstdc++-v3/include/std/mutex b/libstdc++-v3/include/std/mutex index e327f28c1dd..67f34185deb 100644 --- a/libstdc++-v3/include/std/mutex +++ b/libstdc++-v3/include/std/mutex @@ -45,12 +45,13 @@ #include #include // for std::swap -#if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1) +#ifdef _GLIBCXX_USE_C99_STDINT_TR1 namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION +#ifdef _GLIBCXX_HAS_GTHREADS // Common base class for std::mutex and std::timed_mutex class __mutex_base { @@ -384,6 +385,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION } }; #endif +#endif // _GLIBCXX_HAS_GTHREADS /// Do not acquire ownership of the mutex. struct defer_lock_t { }; @@ -719,6 +721,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION } } +#ifdef _GLIBCXX_HAS_GTHREADS /// once_flag struct once_flag { @@ -790,12 +793,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION if (__e) __throw_system_error(__e); } +#endif // _GLIBCXX_HAS_GTHREADS // @} group mutexes _GLIBCXX_END_NAMESPACE_VERSION } // namespace - -#endif // _GLIBCXX_HAS_GTHREADS && _GLIBCXX_USE_C99_STDINT_TR1 +#endif // _GLIBCXX_USE_C99_STDINT_TR1 #endif // C++11 diff --git a/libstdc++-v3/testsuite/30_threads/lock_guard/cons/1.cc b/libstdc++-v3/testsuite/30_threads/lock_guard/cons/1.cc index d92e6bafe94..cd6d9143bdf 100644 --- a/libstdc++-v3/testsuite/30_threads/lock_guard/cons/1.cc +++ b/libstdc++-v3/testsuite/30_threads/lock_guard/cons/1.cc @@ -1,9 +1,6 @@ -// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* powerpc-ibm-aix* } } -// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* powerpc-ibm-aix* } } -// { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } -// { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } +// { dg-do run } +// { dg-options " -std=gnu++11 " } // { dg-require-cstdint "" } -// { dg-require-gthreads "" } // Copyright (C) 2010-2013 Free Software Foundation, Inc. //