[Bug libstdc++/55320] Invalid delete with throwing copy-c'tor passed to std::function

redi at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Nov 14 23:33:00 GMT 2012


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55320

--- Comment #5 from Jonathan Wakely <redi at gcc dot gnu.org> 2012-11-14 23:33:08 UTC ---
Author: redi
Date: Wed Nov 14 23:33:01 2012
New Revision: 193514

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=193514
Log:
    PR libstdc++/55320
    * include/std/functional (function::function(F)): Set _M_manager after
    operations that could throw.
    (_Function_base::_Ref_manager::_M_init_functor): Use addressof.
    * include/tr1/functional
    (_Function_base::_Ref_manager::_M_init_functor): Use addressof.
    (_Function_base::_Base_manager::_M_get_pointer): Likewise.
    * testsuite/20_util/function/cons/55320.cc: New.
    * testsuite/20_util/function/cons/addressof.cc: New.
    * testsuite/20_util/function/cons/callable.cc: Remove header.
    * testsuite/20_util/bind/ref_neg.cc: Adjust dg-error line numbers.
    * testsuite/tr1/3_function_objects/function/10.cc: New.

Added:
    trunk/libstdc++-v3/testsuite/20_util/function/cons/55320.cc
      - copied, changed from r193513,
trunk/libstdc++-v3/testsuite/20_util/function/cons/callable.cc
    trunk/libstdc++-v3/testsuite/20_util/function/cons/addressof.cc
      - copied, changed from r193513,
trunk/libstdc++-v3/testsuite/20_util/function/cons/callable.cc
    trunk/libstdc++-v3/testsuite/tr1/3_function_objects/function/10.cc
      - copied, changed from r193513,
trunk/libstdc++-v3/testsuite/20_util/function/cons/callable.cc
Modified:
    trunk/libstdc++-v3/ChangeLog
    trunk/libstdc++-v3/include/std/functional
    trunk/libstdc++-v3/include/tr1/functional
    trunk/libstdc++-v3/testsuite/20_util/bind/ref_neg.cc
    trunk/libstdc++-v3/testsuite/20_util/function/cons/callable.cc



More information about the Gcc-bugs mailing list