fix Dwarf2 build with certain gcc versions
authorJan Beulich <jbeulich@suse.com>
Mon, 7 Jun 2021 06:37:42 +0000 (08:37 +0200)
committerJan Beulich <jbeulich@suse.com>
Mon, 7 Jun 2021 06:48:26 +0000 (08:48 +0200)
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.

bfd/ChangeLog
bfd/dwarf2.c
binutils/ChangeLog
binutils/dwarf.c

index 7857b70cf06896c07dcde3ac784fdb427df06303..04e3679ab54f8fa50899ca61b3ba22847e6d7130 100644 (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
index 4b169fca4629bbd1b120b4db131c1d0385d4ffd8..79fcd0618d862fa982da59ac4bc19d80bb2cd546 100644 (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);
index 9ff312cf427a302b670b998c8ce2711e9ccbc3e2..009a9e73058316916efdd5d9b5140422219f7d16 100644 (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.
index cfc1436df64521d67eabd65c87c4aa9e64b4f871..b3ec8909054404fb7a67fa644e248acdf27a3e3a 100644 (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);