[Bug libstdc++/71545] [6/7 Regression] Incorrect irreflexive comparison debug check in std::lower_bound
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71545 Jonathan Wakely changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #5 from Jonathan Wakely --- Fixed
[Bug libstdc++/71545] [6/7 Regression] Incorrect irreflexive comparison debug check in std::lower_bound
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71545 --- Comment #4 from Jonathan Wakely --- Author: redi Date: Fri Jun 17 18:53:46 2016 New Revision: 237561 URL: https://gcc.gnu.org/viewcvs?rev=237561&root=gcc&view=rev Log: libstdc++/71545 fix debug checks in binary search algorithms PR libstdc++/71545 * include/bits/stl_algobase.h (lower_bound, lexicographical_compare): Remove irreflexive checks. * include/bits/stl_algo.h (lower_bound, upper_bound, equal_range, binary_search): Likewise. * testsuite/25_algorithms/equal_range/partitioned.cc: New test. * testsuite/25_algorithms/lexicographical_compare/71545.cc: New test. * testsuite/25_algorithms/lower_bound/partitioned.cc: New test. * testsuite/25_algorithms/upper_bound/partitioned.cc: New test. * testsuite/util/testsuite_iterators.h (__gnu_test::test_container): Add constructor from array. Added: branches/gcc-6-branch/libstdc++-v3/testsuite/25_algorithms/binary_search/partitioned.cc branches/gcc-6-branch/libstdc++-v3/testsuite/25_algorithms/equal_range/partitioned.cc branches/gcc-6-branch/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/71545.cc branches/gcc-6-branch/libstdc++-v3/testsuite/25_algorithms/lower_bound/partitioned.cc branches/gcc-6-branch/libstdc++-v3/testsuite/25_algorithms/upper_bound/partitioned.cc Modified: branches/gcc-6-branch/libstdc++-v3/ChangeLog branches/gcc-6-branch/libstdc++-v3/include/bits/stl_algo.h branches/gcc-6-branch/libstdc++-v3/include/bits/stl_algobase.h branches/gcc-6-branch/libstdc++-v3/testsuite/util/testsuite_iterators.h
[Bug libstdc++/71545] [6/7 Regression] Incorrect irreflexive comparison debug check in std::lower_bound
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71545 --- Comment #3 from Jonathan Wakely --- Author: redi Date: Fri Jun 17 18:28:34 2016 New Revision: 237560 URL: https://gcc.gnu.org/viewcvs?rev=237560&root=gcc&view=rev Log: libstdc++/71545 fix debug checks in binary search algorithms PR libstdc++/71545 * include/bits/stl_algobase.h (lower_bound, lexicographical_compare): Remove irreflexive checks. * include/bits/stl_algo.h (lower_bound, upper_bound, equal_range, binary_search): Likewise. * testsuite/25_algorithms/equal_range/partitioned.cc: New test. * testsuite/25_algorithms/lexicographical_compare/71545.cc: New test. * testsuite/25_algorithms/lower_bound/partitioned.cc: New test. * testsuite/25_algorithms/upper_bound/partitioned.cc: New test. * testsuite/util/testsuite_iterators.h (__gnu_test::test_container): Add constructor from array. Added: trunk/libstdc++-v3/testsuite/25_algorithms/binary_search/partitioned.cc trunk/libstdc++-v3/testsuite/25_algorithms/equal_range/partitioned.cc trunk/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/71545.cc trunk/libstdc++-v3/testsuite/25_algorithms/lower_bound/partitioned.cc trunk/libstdc++-v3/testsuite/25_algorithms/upper_bound/partitioned.cc Modified: trunk/libstdc++-v3/ChangeLog trunk/libstdc++-v3/include/bits/stl_algo.h trunk/libstdc++-v3/include/bits/stl_algobase.h trunk/libstdc++-v3/testsuite/util/testsuite_iterators.h
[Bug libstdc++/71545] [6/7 Regression] Incorrect irreflexive comparison debug check in std::lower_bound
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71545 --- Comment #2 from Jonathan Wakely --- The irreflexive assertion is incorrect for lexicographical compare too: #include struct X { }; bool operator<(X, int) { return true; } bool operator<(int, X) { return false; } // Not a strict weak order bool operator<(X, X) { return true; } int main() { X x[1]; int i[1]; std::lexicographical_compare(x, x+1, i, i+1); } This fails in Debug Mode because operator<(X, X) doesn't define a strict weak order, but that operator is not used by the algorithm.
[Bug libstdc++/71545] [6/7 Regression] Incorrect irreflexive comparison debug check in std::lower_bound
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71545 Jonathan Wakely changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |redi at gcc dot gnu.org Target Milestone|--- |6.2
[Bug libstdc++/71545] [6/7 Regression] Incorrect irreflexive comparison debug check in std::lower_bound
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71545 Jonathan Wakely changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2016-06-15 Known to work||5.3.0 Summary|Incorrect irreflexive |[6/7 Regression] Incorrect |comparison debug check in |irreflexive comparison |std::lower_bound|debug check in ||std::lower_bound Ever confirmed|0 |1