This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: New AIX libstdc++ testsuite regression 20_util/allocator_members


	I have done a little more investigating and the cause of the
problem is the single line in stl_alloc.h:

extern template class __default_alloc_template<true, 0>;

If I remove that line from stl_alloc.h, the testcase succeeds.  If I add
that line, the testcase fails.

	Comparing the assembly files, the working version has a lot of
additional code, but no other "differences".

The broken executable references:

std::__default_alloc_template<(bool)1, (int)0>::allocate(unsigned long)
std::__default_alloc_template<(bool)1, (int)0>::deallocate(void*, unsigned long)

The working version externally references:

std::__default_alloc_template<(bool)1, (int)0>::_S_start_free
std::__default_alloc_template<(bool)1, (int)0>::_S_end_free
std::__default_alloc_template<(bool)1, (int)0>::_S_heap_size
std::__default_alloc_template<(bool)1, (int)0>::_S_node_allocator_lock

and provides its own definitions of

std::__default_alloc_template<(bool)1, (int)0>::allocate(unsigned long)
std::__default_alloc_template<(bool)1, (int)0>::deallocate(void*, unsigned long)
std::__default_alloc_template<(bool)1, (int)0>::_S_freelist_index(unsigned long)
std::__default_alloc_template<(bool)1, (int)0>::_Lock::_Lock[in-charge]()
std::__default_alloc_template<(bool)1, (int)0>::_Lock::~_Lock [in-charge]()
std::__default_alloc_template<(bool)1, (int)0>::_S_round_up(unsigned long)
std::__default_alloc_template<(bool)1, (int)0>::_S_refill(unsigned long)
std::__default_alloc_template<(bool)1, (int)0>::_S_chunk_alloc(unsigned long, int&)
std::_STL_mutex_lock::_M_acquire_lock()
std::_STL_mutex_lock::_M_release_lock()
std::__new_alloc::allocate(unsigned long)
std::__new_alloc::deallocate(void*, unsigned long)

which get tightly bound.

David


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]