* dwarf.c (display_debug_ranges): Don't report more than one use
authorAlan Modra <amodra@gmail.com>
Thu, 17 May 2012 07:19:35 +0000 (07:19 +0000)
committerAlan Modra <amodra@gmail.com>
Thu, 17 May 2012 07:19:35 +0000 (07:19 +0000)
of the same range set as an overlap.

binutils/ChangeLog
binutils/dwarf.c

index 64786dae8f4d4d7d18905b66369060546a0563d1..1469e219ea3c6e925ed3d46092167809f8c4a3cc 100644 (file)
@@ -1,3 +1,8 @@
+2012-05-17  Alan Modra  <amodra@gmail.com>
+
+       * dwarf.c (display_debug_ranges): Don't report more than one use
+       of the same range set as an overlap.
+
 2012-05-16  Daniel Richard G.  <skunk@iskunk.org>
 
        PR binutils/13558
index 2aca694949835b5493d22f20ba1e88629ebd3957..54c94bcb1a36dad634ca26f975e48b0028894477 100644 (file)
@@ -4419,6 +4419,7 @@ display_debug_ranges (struct dwarf_section *section,
                      void *file ATTRIBUTE_UNUSED)
 {
   unsigned char *start = section->start;
+  unsigned char *last_start = start;
   unsigned long bytes;
   unsigned char *section_begin = start;
   unsigned int num_range_list, i;
@@ -4502,11 +4503,16 @@ display_debug_ranges (struct dwarf_section *section,
                  (unsigned long) (start - section_begin),
                  (unsigned long) (next - section_begin), section->name);
          else if (start > next)
-           warn (_("There is an overlap [0x%lx - 0x%lx] in %s section.\n"),
-                 (unsigned long) (start - section_begin),
-                 (unsigned long) (next - section_begin), section->name);
+           {
+             if (next == last_start)
+               continue;
+             warn (_("There is an overlap [0x%lx - 0x%lx] in %s section.\n"),
+                   (unsigned long) (start - section_begin),
+                   (unsigned long) (next - section_begin), section->name);
+           }
        }
       start = next;
+      last_start = next;
 
       while (1)
        {