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
+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>
PR libstdc++/51956
class __future_base::_Async_state_common : public __future_base::_State_base
{
protected:
+#ifdef _GLIBCXX_HAVE_TLS
~_Async_state_common();
+#else
+ ~_Async_state_common() { _M_join(); }
+#endif
// Allow non-timed waiting functions to block until the thread completes,
// as if joined.
__future_base::_State_base::~_State_base() = default;
+#ifdef _GLIBCXX_HAVE_TLS
__future_base::_Async_state_common::~_Async_state_common() { _M_join(); }
// Explicit instantiation due to -fno-implicit-instantiation.
template void call_once(once_flag&, void (thread::*&&)(), reference_wrapper<thread>&&);
#endif
+#endif
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace std