* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183920
138bc75d-0d04-0410-961f-
82ee72b054a4
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
* python/libstdcxx/v6/printers.py (StdPointerPrinter): Rename to...
(SharedPointerPrinter): This. Also show weak count.
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