diff options
author | François Dumont <fdumont@gcc.gnu.org> | 2020-06-10 17:48:46 +0100 |
---|---|---|
committer | Giuliano Belinassi <giuliano.belinassi@usp.br> | 2020-08-17 13:11:50 -0300 |
commit | 275ba061e8027f38f0a9e2cfb4250bb27bc1197e (patch) | |
tree | b33f121b085b5cc74f0604ae33692f1fc00f8720 /gcc/fortran/expr.c | |
parent | 071dbde49d48ff0d97dc2029f5d92f8e64b0ad76 (diff) | |
download | gcc-275ba061e8027f38f0a9e2cfb4250bb27bc1197e.zip gcc-275ba061e8027f38f0a9e2cfb4250bb27bc1197e.tar.gz gcc-275ba061e8027f38f0a9e2cfb4250bb27bc1197e.tar.bz2 |
libstdc++: Extend memcmp optimization in std::lexicographical_compare
Make the memcmp optimization work for std::deque iterators and safe
iterators.
Co-authored-by: Jonathan Wakely <jwakely@redhat.com>
libstdc++-v3/ChangeLog:
2020-06-08 François Dumont <fdumont@gcc.gnu.org>
Jonathan Wakely <jwakely@redhat.com>
* include/bits/deque.tcc (__lex_cmp_dit): New.
(__lexicographical_compare_aux1): Define overloads for deque
iterators.
* include/bits/stl_algobase.h (__lexicographical_compare::__3way):
New static member function.
(__lexicographical_compare<true>::__3way): Likewise.
(__lexicographical_compare<true>::__lc): Use __3way.
(__lexicographical_compare_aux): Rename to
__lexicographical_compare_aux1 and declare overloads for deque
iterators.
(__lexicographical_compare_aux): Define new forwarding function
that calls __lexicographical_compare_aux1 and declare new overloads
for safe iterators.
(lexicographical_compare): Do not use __niter_base on
parameters.
* include/debug/safe_iterator.tcc
(__lexicographical_compare_aux): Define overloads for safe
iterators.
* testsuite/25_algorithms/lexicographical_compare/1.cc: Add
checks with random access iterators.
* testsuite/25_algorithms/lexicographical_compare/deque_iterators/1.cc:
New test.
Diffstat (limited to 'gcc/fortran/expr.c')
0 files changed, 0 insertions, 0 deletions