[PATCH] PR libstdc++/90105 make forward_list::sort stable

Jonathan Wakely jwakely@redhat.com
Thu Apr 18 02:38:00 GMT 2019


On 16/04/19 23:16 +0100, Jonathan Wakely wrote:
>While testing the fix I also discovered that operator== assumes the
>elements are comparable with operator!= which is not required.
>
>	PR libstdc++/90105
>	* include/bits/forward_list.h (operator==): Do not use operator!= to
>	compare elements.
>	(forward_list<T, A>::sort(Comp)): When elements are equal take the one
>	earlier in the list, so that sort is stable.
>	* testsuite/23_containers/forward_list/operations/90105.cc: New test.
>	* testsuite/23_containers/forward_list/comparable.cc: Test with
>	types that meet the minimum EqualityComparable and LessThanComparable
>	requirements. Remove irrelevant comment.
>
>Tested powerpc64le-linux.
>
>I'm surprised nobody has noticed either of these bugs before! I think
>this is safe for stage 4, and for backporting to active branches. Any
>objections?

Committed to trunk.



More information about the Gcc-patches mailing list