mirror of git://gcc.gnu.org/git/gcc.git
re PR libstdc++/52104 (go1 fails to run on Solaris 10/11 x86 with with gld)
PR libstdc++/52104 * include/std/future (__future_base::_Async_state_common): Define destructor inline for targets without TLS. * src/c++11/future.cc (__future_base::_Async_state_common): Only define destructor for TLS targets. From-SVN: r183920
This commit is contained in:
parent
148ea7d8ef
commit
be38506d7c
|
@ -1,3 +1,11 @@
|
||||||
|
2012-02-05 Jonathan Wakely <jwakely.gcc@gmail.com>
|
||||||
|
|
||||||
|
PR libstdc++/52104
|
||||||
|
* include/std/future (__future_base::_Async_state_common): Define
|
||||||
|
destructor inline for targets without TLS.
|
||||||
|
* src/c++11/future.cc (__future_base::_Async_state_common): Only
|
||||||
|
define destructor for TLS targets.
|
||||||
|
|
||||||
2012-02-05 Jonathan Wakely <jwakely.gcc@gmail.com>
|
2012-02-05 Jonathan Wakely <jwakely.gcc@gmail.com>
|
||||||
|
|
||||||
PR libstdc++/51956
|
PR libstdc++/51956
|
||||||
|
|
|
@ -1425,7 +1425,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
class __future_base::_Async_state_common : public __future_base::_State_base
|
class __future_base::_Async_state_common : public __future_base::_State_base
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
|
#ifdef _GLIBCXX_HAVE_TLS
|
||||||
~_Async_state_common();
|
~_Async_state_common();
|
||||||
|
#else
|
||||||
|
~_Async_state_common() { _M_join(); }
|
||||||
|
#endif
|
||||||
|
|
||||||
// Allow non-timed waiting functions to block until the thread completes,
|
// Allow non-timed waiting functions to block until the thread completes,
|
||||||
// as if joined.
|
// as if joined.
|
||||||
|
|
|
@ -85,11 +85,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
|
|
||||||
__future_base::_State_base::~_State_base() = default;
|
__future_base::_State_base::~_State_base() = default;
|
||||||
|
|
||||||
|
#ifdef _GLIBCXX_HAVE_TLS
|
||||||
__future_base::_Async_state_common::~_Async_state_common() { _M_join(); }
|
__future_base::_Async_state_common::~_Async_state_common() { _M_join(); }
|
||||||
|
|
||||||
// Explicit instantiation due to -fno-implicit-instantiation.
|
// Explicit instantiation due to -fno-implicit-instantiation.
|
||||||
template void call_once(once_flag&, void (thread::*&&)(), reference_wrapper<thread>&&);
|
template void call_once(once_flag&, void (thread::*&&)(), reference_wrapper<thread>&&);
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
_GLIBCXX_END_NAMESPACE_VERSION
|
_GLIBCXX_END_NAMESPACE_VERSION
|
||||||
} // namespace std
|
} // namespace std
|
||||||
|
|
Loading…
Reference in New Issue