==32438== Memcheck, a memory error detector for x86-linux. ==32438== Copyright (C) 2002-2005, and GNU GPL'd, by Julian Seward et al. ==32438== Using valgrind-2.4.0, a program supervision framework for x86-linux. ==32438== Copyright (C) 2000-2005, and GNU GPL'd, by Julian Seward et al. ==32438== ==32438== My PID = 32438, parent PID = 31410. Prog and args are: ==32438== ../../../bin/boost/libs/ptr_container/test/ptr_set.test/gcc/debug/ptr_set ==32438== For more details, rerun with: -v ==32438== ==32438== Invalid read of size 4 ==32438== at 0x1B9B03F9: __dynamic_cast (in /usr/lib/libstdc++.so.5.0.7) ==32438== by 0x80629BC: Derived_class::less_than(Base const&) const (test_data.hpp:149) ==32438== by 0x804C2E4: operator<(Base const&, Base const&) (test_data.hpp:97) ==32438== by 0x8063DC5: std::less::operator()(Base const&, Base const&) const (stl_function.h:197) ==32438== by 0x8063DA8: boost::void_ptr_indirect_fun, Base, Base>::operator()(void const*, void const*) const (indirect_fun.hpp:121) ==32438== by 0x8063E95: std::_Rb_tree, boost::void_ptr_indirect_fun, Base, Base>, std::allocator >::find(void* const&) (stl_tree.h:1271) ==32438== by 0x8063D08: std::set, Base, Base>, std::allocator >::find(void* const&) (stl_set.h:187) ==32438== by 0x805C765: boost::ptr_container_detail::ptr_set_adapter_base, Base, Base>, std::allocator >, boost::heap_clone_allocator>::find(Base const&) (ptr_set_adapter.hpp:139) ==32438== by 0x805BA98: void ptr_set_test, boost::heap_clone_allocator, std::allocator >, Base, Derived_class>() (associative_test_data.hpp:108) ==32438== by 0x804C689: test_set() (ptr_set.cpp:18) ==32438== by 0x8065CB8: boost::unit_test::ut_detail::unused boost::unit_test::ut_detail::invoker::invoke(void (*)()&) (callback.hpp:56) ==32438== by 0x806233A: boost::unit_test::ut_detail::callback0_impl_t::invoke() (callback.hpp:89) ==32438== Address 0x1BB45770 is 0 bytes inside a block of size 24 free'd ==32438== at 0x1B904CA8: operator delete(void*) (vg_replace_malloc.c:155) ==32438== by 0x806290A: Derived_class::~Derived_class() (result_iterator.hpp:57) ==32438== by 0x80638FF: void boost::checked_delete(Base const*) (checked_delete.hpp:34) ==32438== by 0x80638DE: void boost::delete_clone(Base const*) (clone_allocator.hpp:32) ==32438== by 0x80638CA: void boost::heap_clone_allocator::deallocate_clone(Base const*) (clone_allocator.hpp:50) ==32438== by 0x80638B6: boost::ptr_container_detail::reversible_ptr_container, Base, Base>, std::allocator > >, boost::heap_clone_allocator>::null_clone_allocator::deallocate_clone(Base const*) (reversible_ptr_container.hpp:112) ==32438== by 0x80638A2: boost::ptr_container_detail::reversible_ptr_container, Base, Base>, std::allocator > >, boost::heap_clone_allocator>::null_policy_deallocate_clone(Base const*) (reversible_ptr_container.hpp:276) ==32438== by 0x8063864: _ZN5boost20ptr_container_detail24reversible_ptr_containerINS0_10set_configI4BaseSt3setIPvNS_21void_ptr_indirect_funISt4lessIS3_ES3_S3_EESaIS5_EEEENS_20heap_clone_allocatorEE6removeINS_17void_ptr_iteratorISt17_Rb_tree_iteratorIS5_RKS5_PSI_ES3_EEEEvT_ (reversible_ptr_container.hpp:226) ==32438== by 0x806383C: _ZN5boost20ptr_container_detail24reversible_ptr_containerINS0_10set_configI4BaseSt3setIPvNS_21void_ptr_indirect_funISt4lessIS3_ES3_S3_EESaIS5_EEEENS_20heap_clone_allocatorEE6removeINS_17void_ptr_iteratorISt17_Rb_tree_iteratorIS5_RKS5_PSI_ES3_EEEEvT_SN_ (reversible_ptr_container.hpp:233) ==32438== by 0x8063312: boost::ptr_container_detail::reversible_ptr_container, Base, Base>, std::allocator > >, boost::heap_clone_allocator>::remove_all() (reversible_ptr_container.hpp:206) ==32438== by 0x805C99C: boost::ptr_container_detail::reversible_ptr_container, Base, Base>, std::allocator > >, boost::heap_clone_allocator>::clear() (reversible_ptr_container.hpp:463) ==32438== by 0x805A51D: void ptr_set_test, boost::heap_clone_allocator, std::allocator >, Base, Derived_class>() (associative_test_data.hpp:66) ==32438== ==32438== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 19 from 1) ==32438== malloc/free: in use at exit: 9960 bytes in 5 blocks. ==32438== malloc/free: 62 allocs, 57 frees, 47320 bytes allocated. ==32438== For counts of detected errors, rerun with: -v ==32438== searching for pointers to 5 not-freed blocks. ==32438== checked 251624 bytes. ==32438== ==32438== LEAK SUMMARY: ==32438== definitely lost: 0 bytes in 0 blocks. ==32438== possibly lost: 0 bytes in 0 blocks. ==32438== still reachable: 9960 bytes in 5 blocks. ==32438== suppressed: 0 bytes in 0 blocks. ==32438== Reachable blocks (those to which a pointer was found) are not shown. ==32438== To see them, rerun with: --show-reachable=yes