On 13 January 2017 at 10:27, Ville Voutilainen
> On 13 January 2017 at 10:09, Ville Voutilainen
> <ville.voutilai...@gmail.com> wrote:
>>>> Ah, I think I see what you're saying. Just splice them back in any
>>>> order. Ok, I'll give that a spin.
>>> Right, list::sort doesn't promise strong exception safety, so
>>> "unsorting" is not needed.
>>> Also, shouldn't merge() rethrow the caught exception rather than swallow it?
>> Ha, yes, well spotted. I'll cook up an improved patch.
> 2017-01-13 Ville Voutilainen <ville.voutilai...@gmail.com>
> PR libstdc++/78389
> * include/bits/list.tcc (merge(list&&)):
> Adjust list sizes if the comparator throws.
> (merge(list&&, _StrictWeakOrdering)): Likewise.
> (sort()): Splice elements back from the scratch buffers
> if the comparator throws.
> (sort(_StrictWeakOrdering)): Likewise.
> * testsuite/23_containers/list/operations/78389.cc: New.
..and yes, sigh, that patch has whitespace damage in it. I have
already fixed that, so that'll be corrected before