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