aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2012-05-17 07:19:35 +0000
committerAlan Modra <amodra@gmail.com>2012-05-17 07:19:35 +0000
commita2ff7a4bb45f6c1be62554c82ff9d688f056b876 (patch)
treeb0ec0f70cd4bf68ed08d3bc674297a9bd9e4af40
parentd9fa356624ec5831478874839149195696d53f34 (diff)
downloadgdb-a2ff7a4bb45f6c1be62554c82ff9d688f056b876.zip
gdb-a2ff7a4bb45f6c1be62554c82ff9d688f056b876.tar.gz
gdb-a2ff7a4bb45f6c1be62554c82ff9d688f056b876.tar.bz2
* dwarf.c (display_debug_ranges): Don't report more than one use
of the same range set as an overlap.
-rw-r--r--binutils/ChangeLog5
-rw-r--r--binutils/dwarf.c12
2 files changed, 14 insertions, 3 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 64786da..1469e21 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -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
diff --git a/binutils/dwarf.c b/binutils/dwarf.c
index 2aca694..54c94bc 100644
--- a/binutils/dwarf.c
+++ b/binutils/dwarf.c
@@ -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)
{