[PATCH 3/3] Fix mapped_index::find_name_components_bounds upper bound computation

Pedro Alves
2017-11-20T00:42:02Z

Here we want to find where we'd insert "after", so we want
std::lower_bound, not std::upper_bound.

gdb/ChangeLog:
yyyy-mm-dd Pedro Alves <palves@redhat.com>

* dwarf2read.c (mapped_index::find_name_components_bounds)
<completion mode, upper bound>: Use std::lower_bound instead of
std::upper_bound.
(test_mapped_index_find_name_component_bounds): Remove incorrect
"t1_fund" from expected symbols.
---
gdb/dwarf2read.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index 53548ca..c4d1254 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -4319,8 +4319,8 @@ mapped_index::find_name_components_bounds
std::string after = make_sort_after_prefix_name (cplus);
if (after.empty ())
return end;
- return std::upper_bound (lower, end, after.c_str (),
- lookup_compare_upper);
+ return std::lower_bound (lower, end, after.c_str (),
+ lookup_compare_lower);
}
else
return std::upper_bound (lower, end, cplus, lookup_compare_upper);
@@ -4659,7 +4659,6 @@ test_mapped_index_find_name_component_bounds ()
static const char *expected_syms[] = {
"t1_func",
"t1_func1",
- "t1_fund", /* This one's incorrect. */
};

SELF_CHECK (check_find_bounds_finds (mock_index.index (),
--
2.5.5