http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48750
--- Comment #17 from Paolo Carlini <paolo.carlini at oracle dot com> 2011-04-27 20:23:25 UTC --- Thanks Johannes. Indeed, I was still a little nervous about those bits of losertree.h. If you can, please make sure that (even if it costs a bit of performance): 1- After memory allocation, the first time each objects is constructed, via placement new, not assigned. 2- All the following times are assigned, not constructed. 3- All the object are destructed, once, by calling explicitly the destructor, in the destructor of _LoserTree* class, before deallocating the memory via operator delete. Careful not trying to destruct objects never constructed in the first place. In general, I recommend preparing a tiny snippet code exercising the parallel code at issue and running it under valgrind (doing that yesterday for the elements of a vector<string>, for sort, stable_sort, etc, turned out to be rather "interesting" ;) Please, keep me up to date, we want to resolve this for 4.6.1, I think.