re PR libstdc++/17780 (std::allocator vs. static init)
authorBenjamin Kosnik <bkoz@redhat.com>
Wed, 6 Oct 2004 04:22:42 +0000 (04:22 +0000)
committerBenjamin Kosnik <bkoz@gcc.gnu.org>
Wed, 6 Oct 2004 04:22:42 +0000 (04:22 +0000)
commit12cde21b1201cee86d4fd2c87aa8f40fb09b667e
tree337086b8283d037310840150a3c1b468e056007b
parent743eeb5a817d2557e813a65b3fc49ac92714c49c
re PR libstdc++/17780 (std::allocator vs. static init)

2004-10-05  Benjamin Kosnik  <bkoz@redhat.com>

PR libstdc++/17780
* include/ext/mt_allocator.h (__pool_base::_Tune): Add default
options as compile-time constant enums.
(__pool_base::_Tune::is_default): New.
(__pool_base::_Block_address): New.
(__pool_base): Rearrange data members.
(__pool::_M_reserve_memory): To _M_reserve_block.
(__pool::_M_reclaim_memory): To _M_reclaim_block.
(__pool::_Bin_record): Add _Block_address data member.
(__pool<false>): Add _M_thread_freelist_initial.
(__pool::~__pool): Declare.
(__common_pool_policy): Move static data member to...
(__common_pool_policy::_S_get_pool): ...here, make static local.
(__per_type_pool_policy): Move static data member to...
(__per_type_pool_policy::_S_get_pool): ...here, make static local.
(__mt_alloc::__mt_alloc): Call __policy_type::_S_get_pool.
Remove static member definitions. Use define for __default_policy.
* src/mt_allocator.cc: Same.
* config/linker-map.gnu: Don't export _S_get_pool. Renames.
* testsuite/ext/new_allocator: New.
* testsuite/ext/new_allocator/instantiate.cc: New.
* testsuite/ext/new_allocator/check_new.cc: New.
* testsuite/ext/new_allocator/deallocate_global.cc: New.
* testsuite/ext/new_allocator/deallocate_local.cc: New.
* testsuite/ext/mt_allocator/instantiate.cc: Instantiate all
template arguments.
* testsuite/ext/mt_allocator/deallocate_global-1.cc: New.
* testsuite/ext/mt_allocator/deallocate_global-2.cc: New.
* testsuite/ext/mt_allocator/deallocate_global-3.cc: New.
* testsuite/ext/mt_allocator/deallocate_global-4.cc: New.
* testsuite/ext/mt_allocator/deallocate_local-1.cc: New.
* testsuite/ext/mt_allocator/deallocate_local-2.cc: New.
* testsuite/ext/mt_allocator/deallocate_local-3.cc: New.
* testsuite/ext/mt_allocator/deallocate_local-4.cc: New.
* testsuite/ext/mt_allocator/deallocate.cc: New.
* testsuite/ext/malloc_allocator/deallocate.cc: New.
* testsuite/ext/malloc_allocator/deallocate_global.cc: New.
* testsuite/ext/malloc_allocator/deallocate_local.cc: New.

From-SVN: r88589
19 files changed:
libstdc++-v3/ChangeLog
libstdc++-v3/config/linker-map.gnu
libstdc++-v3/include/ext/mt_allocator.h
libstdc++-v3/src/mt_allocator.cc
libstdc++-v3/testsuite/ext/malloc_allocator/deallocate_global.cc [new file with mode: 0644]
libstdc++-v3/testsuite/ext/malloc_allocator/deallocate_local.cc [new file with mode: 0644]
libstdc++-v3/testsuite/ext/mt_allocator/deallocate_global-1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/ext/mt_allocator/deallocate_global-2.cc [new file with mode: 0644]
libstdc++-v3/testsuite/ext/mt_allocator/deallocate_global-3.cc [new file with mode: 0644]
libstdc++-v3/testsuite/ext/mt_allocator/deallocate_global-4.cc [new file with mode: 0644]
libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local-1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local-2.cc [new file with mode: 0644]
libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local-3.cc [new file with mode: 0644]
libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local-4.cc [new file with mode: 0644]
libstdc++-v3/testsuite/ext/mt_allocator/instantiate.cc
libstdc++-v3/testsuite/ext/new_allocator/check_new.cc [new file with mode: 0644]
libstdc++-v3/testsuite/ext/new_allocator/deallocate_global.cc [new file with mode: 0644]
libstdc++-v3/testsuite/ext/new_allocator/deallocate_local.cc [new file with mode: 0644]
libstdc++-v3/testsuite/ext/new_allocator/instantiate.cc [new file with mode: 0644]