fix Dwarf2 build with certain gcc versions

Older gcc reports:

.../bfd/dwarf2.c: In function 'read_ranges':
.../bfd/dwarf2.c:3107: error: comparison between signed and unsigned
.../bfd/dwarf2.c: In function 'read_rnglists':
.../bfd/dwarf2.c:3189: error: comparison between signed and unsigned

Similarly for binutils/dwarf.c. Arrange for the left sides of the > to
also be unsigned quantities.
This commit is contained in:
Jan Beulich 2021-06-07 08:37:42 +02:00
parent 53f18dfd3e
commit 6bee34a1dc
4 changed files with 11 additions and 3 deletions

View file

@ -1,3 +1,7 @@
2021-06-07 Jan Beulich <jbeulich@suse.com>
* dwarf2.c (read_ranges, read_rnglists): Add u suffix to constant.
2021-06-02 Alan Modra <amodra@gmail.com>
* elf-attrs.c (_bfd_elf_parse_attributes): Break out of loop if

View file

@ -3104,7 +3104,7 @@ read_ranges (struct comp_unit *unit, struct arange *arange,
bfd_vma high_pc;
/* PR 17512: file: 62cada7d. */
if (2 * unit->addr_size > (size_t) (ranges_end - ranges_ptr))
if (2u * unit->addr_size > (size_t) (ranges_end - ranges_ptr))
return false;
low_pc = read_address (unit, &ranges_ptr, ranges_end);
@ -3186,7 +3186,7 @@ read_rnglists (struct comp_unit *unit, struct arange *arange,
break;
case DW_RLE_start_end:
if (2 * unit->addr_size > (size_t) (rngs_end - rngs_ptr))
if (2u * unit->addr_size > (size_t) (rngs_end - rngs_ptr))
return false;
low_pc = read_address (unit, &rngs_ptr, rngs_end);
high_pc = read_address (unit, &rngs_ptr, rngs_end);

View file

@ -1,3 +1,7 @@
2021-06-07 Jan Beulich <jbeulich@suse.com>
* dwarf.c (display_debug_aranges): Add u suffix to constant.
2021-05-29 Alan Modra <amodra@gmail.com>
* objdump (usage): Add missing \n.

View file

@ -7284,7 +7284,7 @@ display_debug_aranges (struct dwarf_section *section,
start = end_ranges;
while (2 * address_size <= (size_t) (start - addr_ranges))
while (2u * address_size <= (size_t) (start - addr_ranges))
{
SAFE_BYTE_GET_AND_INC (address, addr_ranges, address_size, start);
SAFE_BYTE_GET_AND_INC (length, addr_ranges, address_size, start);