https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83938
François Dumont <fdumont at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |RESOLVED Resolution|--- |FIXED --- Comment #8 from François Dumont <fdumont at gcc dot gnu.org> --- Git commit for this PR hasn't been detected so here it is: commit ba23e045fcb820e8d32dee361c4d048604d8d599 Author: François Dumont <fdum...@gcc.gnu.org> Date: Wed Jan 22 17:55:54 2020 +0100 libstdc++: Limit memory allocation in stable_sort/inplace_merge (PR 83938) Reduce memory allocation in stable_sort/inplace_merge algorithms to what is needed by the implementation. Co-authored-by: John Chang <john.ch...@samba.tv> libstdc++-v3/ChangeLog: PR libstdc++/83938 * include/bits/stl_tempbuf.h (get_temporary_buffer): Change __len computation in the loop to avoid truncation. * include/bits/stl_algo.h: (__inplace_merge): Take temporary buffer length from smallest range. (__stable_sort): Limit temporary buffer length. * testsuite/25_algorithms/inplace_merge/1.cc (test4): New. * testsuite/performance/25_algorithms/stable_sort.cc: Test stable_sort under different heap memory conditions. * testsuite/performance/25_algorithms/inplace_merge.cc: New test. The added performance test didn't show any enhancement for the algo change so only the innefficiency has been fixed.