[binutils-gdb] gdb/dwarf: change dwarf2_ranges_read to return bool
Simon Marchi via Gdb-cvs <[email protected]>
| Newsgroups | gmane.comp.gdb.cvs |
|---|---|
| Message-ID | <[email protected]> |
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=67cdd8e7aaf706f90fa90bf5a739caf99a21dac8 commit 67cdd8e7aaf706f90fa90bf5a739caf99a21dac8 Author: Simon Marchi <[email protected]> Date: Wed Mar 11 14:05:35 2026 -0400 gdb/dwarf: change dwarf2_ranges_read to return bool Also, do some little cleanups in the function itself. Change-Id: I83928a31dcdcae34b651828fef27b1fa877241eb Approved-By: Tom Tromey <[email protected]> Diff: --- gdb/dwarf2/read.c | 32 ++++++++++++++++++-------------- gdb/dwarf2/read.h | 10 +++++----- 2 files changed, 23 insertions(+), 19 deletions(-) diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index 6861b6ad4cd..74c6ab7eff7 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -8712,17 +8712,15 @@ dwarf2_ranges_process (unsigned offset, struct dwarf2_cu *cu, dwarf_tag tag, /* See read.h. */ -int +bool dwarf2_ranges_read (unsigned offset, unrelocated_addr *low_return, unrelocated_addr *high_return, struct dwarf2_cu *cu, addrmap_mutable *map, void *datum, dwarf_tag tag) { - int low_set = 0; + bool low_set = false; unrelocated_addr low = {}; unrelocated_addr high = {}; - bool retval; - - retval = dwarf2_ranges_process (offset, cu, tag, + bool retval = dwarf2_ranges_process (offset, cu, tag, [&] (unrelocated_addr range_beginning, unrelocated_addr range_end) { if (map != nullptr) @@ -8737,33 +8735,39 @@ dwarf2_ranges_read (unsigned offset, unrelocated_addr *low_return, segment of consecutive addresses. We should have a data structure for discontiguous block ranges instead. */ - if (! low_set) + if (!low_set) { low = range_beginning; high = range_end; - low_set = 1; + low_set = true; } else { if (range_beginning < low) low = range_beginning; + if (range_end > high) high = range_end; } }); + if (!retval) - return 0; + return false; - if (! low_set) - /* If the first entry is an end-of-list marker, the range + if (!low_set) + { + /* If the first entry is an end-of-list marker, the range describes an empty scope, i.e. no instructions. */ - return 0; + return false; + } - if (low_return) + if (low_return != nullptr) *low_return = low; - if (high_return) + + if (high_return != nullptr) *high_return = high; - return 1; + + return true; } /* Process ranges and fill in a vector of the low PC values only. */ diff --git a/gdb/dwarf2/read.h b/gdb/dwarf2/read.h index e2d75e16146..86f97e7ccf4 100644 --- a/gdb/dwarf2/read.h +++ b/gdb/dwarf2/read.h @@ -1381,14 +1381,14 @@ extern dwarf2_per_cu *dwarf2_find_unit (const section_and_offset &start, extern bool decode_locdesc (dwarf_block *blk, dwarf2_cu *cu, CORE_ADDR *result); /* Get low and high pc attributes from DW_AT_ranges attribute value OFFSET. - Return 1 if the attributes are present and valid, otherwise, return 0. + Return true if the attributes are present and valid, otherwise, return false. TAG is passed to dwarf2_ranges_process. If MAP is not NULL, then ranges in MAP are set, using DATUM as the value. */ -extern int dwarf2_ranges_read (unsigned offset, unrelocated_addr *low_return, - unrelocated_addr *high_return, dwarf2_cu *cu, - addrmap_mutable *map, void *datum, - dwarf_tag tag); +extern bool dwarf2_ranges_read (unsigned offset, unrelocated_addr *low_return, + unrelocated_addr *high_return, dwarf2_cu *cu, + addrmap_mutable *map, void *datum, + dwarf_tag tag); extern file_and_directory &find_file_and_directory (die_info *die, dwarf2_cu *cu);