[v3 PATCH] PR libstdc++/78389

Tim Song t.canens.cpp@gmail.com
Fri Jan 13 08:41:00 GMT 2017


On Fri, Jan 13, 2017 at 3:27 AM, Ville Voutilainen
<ville.voutilainen@gmail.com> wrote:
> On 13 January 2017 at 10:09, Ville Voutilainen
> <ville.voutilainen@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.
>
> Thus:
>
> 2017-01-13  Ville Voutilainen  <ville.voutilainen@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.

Shouldn't __carry be spliced back as well?



More information about the Gcc-patches mailing list