Regressions in gas test-suite results with your recent dwarf fixes
Nicholas Clifton
nickc@redhat.com
Fri Feb 13 11:15:00 GMT 2015
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;
}
More information about the Binutils
mailing list