[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