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.

Reply via email to