This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: Regressions in gas test-suite results with your recent dwarf fixes
- From: Nicholas Clifton <nickc at redhat dot com>
- To: Hans-Peter Nilsson <hans-peter dot nilsson at axis dot com>
- Cc: binutils at sourceware dot org
- Date: Fri, 13 Feb 2015 11:15:07 +0000
- Subject: Re: Regressions in gas test-suite results with your recent dwarf fixes
- Authentication-results: sourceware.org; auth=none
- References: <201502102129 dot t1ALTQPH029220 at ignucius dot se dot axis dot com>
Hi Hans-Peter,
With one of your recent dwarf-related commits (either 03a91817f16 or
77ef86547510c), I see regressions for cris-elf and cris-linux;
these FAILs where there should be none:
Running /tmp/hpautotest-binutils/bsrc/src/gas/testsuite/gas/cris/cris.exp ...
FAIL: gas/cris/rd-dw2-11
FAIL: gas/cris/rd-dw2-2
FAIL: gas/cris/rd-dw2-4
FAIL: gas/cris/rd-dw2-5
FAIL: gas/cris/rd-dw2-7
FAIL: gas/cris/rd-dw2-8
FAIL: gas/cris/rd-dw2-9
I had a quick look to handle any quick adjustment to tweaked
output format, but the displayed location information is-like
displayed or generated modulo 32768 or something. Looking at
the disassembly, the actual code (and the location) is as
before.
I am very sorry about this. Your are correct - there was a bug in the
code in read_leb128 that was meant to check for an unterminated leb128
number. I have now checked in the patch below to fix this.
Cheers
Nick
binutils/ChangeLog
2015-02-13 Nick Clifton <nickc@redhat.com>
* dwarf.c (read_leb128): Fix test for shift becoming too large.
diff --git a/binutils/dwarf.c b/binutils/dwarf.c
index dad381f..936f634 100644
--- a/binutils/dwarf.c
+++ b/binutils/dwarf.c
@@ -284,7 +284,7 @@ read_leb128 (unsigned char *data,
/* PR 17512: file: 0ca183b8.
FIXME: Should we signal this error somehow ? */
- if (shift >= sizeof (result))
+ if (shift >= sizeof (result) * 8)
break;
}