re PR libstdc++/55320 (Invalid delete with throwing copy-c'tor passed to std::function)
authorJonathan Wakely <jwakely.gcc@gmail.com>
Wed, 14 Nov 2012 23:33:01 +0000 (23:33 +0000)
committerJonathan Wakely <redi@gcc.gnu.org>
Wed, 14 Nov 2012 23:33:01 +0000 (23:33 +0000)
commit99ace34a31c9d1220d10ac6f6089038976732df1
tree61c548f3b9eeb6c0a2b15a23e063290fb69cd049
parent3aac5aad16e7e77dcd3885089c6b2566df29feb9
re PR libstdc++/55320 (Invalid delete with throwing copy-c'tor passed to std::function)

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.

From-SVN: r193514
libstdc++-v3/ChangeLog
libstdc++-v3/include/std/functional
libstdc++-v3/include/tr1/functional
libstdc++-v3/testsuite/20_util/bind/ref_neg.cc
libstdc++-v3/testsuite/20_util/function/cons/55320.cc [new file with mode: 0644]
libstdc++-v3/testsuite/20_util/function/cons/addressof.cc [new file with mode: 0644]
libstdc++-v3/testsuite/20_util/function/cons/callable.cc
libstdc++-v3/testsuite/tr1/3_function_objects/function/10.cc [new file with mode: 0644]