id summary reporter owner description type status milestone component version severity resolution keywords cc 13119 Boost::binomial_heap Merge memcheck error - Merging 9 into 5 jun.kudo@… timblechmann "Binomial heap merge routine reads from uninitialized memory in the attached example. {{{ #include ""boost/heap/binomial_heap.hpp"" typedef boost::heap::binomial_heap Heap; int main(int /*argc*/, char* /*argv*/[]) { Heap heap0; size_t heap0_size = 5; size_t max_range = 100; for (size_t ix = 0; ix < heap0_size; ++ix) { heap0.push(rand() % max_range); } Heap heap1; size_t heap1_size = 9; for (size_t ix = 0; ix < heap1_size; ++ix) { heap1.push(rand() % max_range); } heap0.merge(heap1); } }}} I believe line 693 is incorrectly moving the iterator forwards. If the carry node is inserted before the last node of trees, this line will cause this_iterator to point to trees.end(). However, for this case, it will follow the goto statement and start another iteration which will cause the function to read from out of bounds. " Bugs new To Be Determined heap Boost 1.64.0 Problem