Fix incorrect results from std::boyer_moore_searcher
authorJonathan Wakely <jwakely@redhat.com>
Tue, 18 Apr 2017 11:08:00 +0000 (12:08 +0100)
committerJonathan Wakely <redi@gcc.gnu.org>
Tue, 18 Apr 2017 11:08:00 +0000 (12:08 +0100)
commit38d68cf0f5dae47c558e2ea2a9bf652788a19eeb
treef1da49d134b59a41eab81dbf0982d1e9c2227f21
parentd6e3e8a54cfb57df98db48d728844231f24c0661
Fix incorrect results from std::boyer_moore_searcher

* include/std/functional (default_searcher, __boyer_moore_array_base)
(__is_std_equal_to, __boyer_moore_base_t, boyer_moore_searcher)
(boyer_moore_horspool_searcher): Remove redundant namespace
qualification.
(default_searcher::operator()): Construct return value early and
advance second member in-place.
(boyer_moore_horspool_searcher::operator()): Increment random access
iterator directly instead of using std::next.
(boyer_moore_searcher::operator()): Fix return value.
* testsuite/20_util/function_objects/searchers.cc: Check both parts
of return values.

From-SVN: r246964
libstdc++-v3/ChangeLog
libstdc++-v3/include/std/functional
libstdc++-v3/testsuite/20_util/function_objects/searchers.cc