re PR libstdc++/64535 (Emergency buffer for exception allocation too small)
authorRichard Biener <rguenther@suse.de>
Thu, 22 Jan 2015 09:21:48 +0000 (09:21 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Thu, 22 Jan 2015 09:21:48 +0000 (09:21 +0000)
commitcce93c76bac0718cd084410797c38734b5649156
treeabf3aa1d03797c5bd51f6b44701776fde16675dc
parent770acfc9e3753d7b9d4727293ac6f16811fa751f
re PR libstdc++/64535 (Emergency buffer for exception allocation too small)

2015-01-22  Richard Biener  <rguenther@suse.de>

PR libstdc++/64535
* libsupc++/eh_alloc.cc: Include new.
(bitmask_type): Remove.
(one_buffer): Likewise.
(emergency_buffer): Likewise.
(emergency_used): Likewise.
(dependents_buffer): Likewise.
(dependents_used): Likewise.
(class pool): New custom fixed-size arena, variable size object
allocator.
(emergency_pool): New global.
(__cxxabiv1::__cxa_allocate_exception): Use new emergency_pool.
(__cxxabiv1::__cxa_free_exception): Likewise.
(__cxxabiv1::__cxa_allocate_dependent_exception): Likewise.
(__cxxabiv1::__cxa_free_dependent_exception): Likewise.

* g++.old-deja/g++.eh/badalloc1.C: Adjust.

From-SVN: r219988
gcc/testsuite/ChangeLog
gcc/testsuite/g++.old-deja/g++.eh/badalloc1.C
libstdc++-v3/ChangeLog
libstdc++-v3/libsupc++/eh_alloc.cc