Remove unused explicit instantiation of __bind_simple
authorJonathan Wakely <jwakely@redhat.com>
Tue, 17 Jul 2018 13:16:51 +0000 (14:16 +0100)
committerJonathan Wakely <redi@gcc.gnu.org>
Tue, 17 Jul 2018 13:16:51 +0000 (14:16 +0100)
commit79a88477ad431b7368b98f80f91077177383012d
tree402a8c4308d672babc7593faad188731e6cd3e3e
parent3f4453745ecf9ff1730567c665f4b1847bd3d33f
Remove unused explicit instantiation of __bind_simple

The explicit instantiation of std::call_once used to require an
instantiation of __bind_simple, but call_once was changed by r241031 to
not use __bind_simple. The instantiation of __bind_simple (and the
definitions it uses) are not needed. They should have been removed
instead of doing the changes in r241111 that kept them compiling.

The use of std::call_once by _Async_state_common::_M_join can be
simplified to use a pointer instead of reference wrapper. The call_once
symbol isn't exported so the change isn't visible outside the library.

* src/c++11/compatibility-thread-c++0x.cc [_GLIBCXX_SHARED]
(_Async_state_common::_M_join): Simplify use of std::call_once and
corresponding explicit instantiation.
(_Maybe_wrap_member_pointer, _Bind_simple, _Bind_simple_helper)
(__bind_simple): Remove definitions and explicit instantiation that
are not required by exported symbols.

From-SVN: r262823
libstdc++-v3/ChangeLog
libstdc++-v3/src/c++11/compatibility-thread-c++0x.cc