aboutsummaryrefslogtreecommitdiff
path: root/binutils
diff options
context:
space:
mode:
authorJan Kratochvil <jan.kratochvil@redhat.com>2009-09-07 18:07:02 +0000
committerJan Kratochvil <jan.kratochvil@redhat.com>2009-09-07 18:07:02 +0000
commiteb7cc02115c176068ad577e9787cff620cf32d4f (patch)
tree3899f9763528884b58f68e57ad0b3be47e48956d /binutils
parent1ecbdee03ea43a662dda7b1fd47102b11b284925 (diff)
downloadfsf-binutils-gdb-eb7cc02115c176068ad577e9787cff620cf32d4f.zip
fsf-binutils-gdb-eb7cc02115c176068ad577e9787cff620cf32d4f.tar.gz
fsf-binutils-gdb-eb7cc02115c176068ad577e9787cff620cf32d4f.tar.bz2
binutils/
* dwarf.c (process_debug_info): Support section padding abbrev codes. binutils/testsuite/ * binutils-all/testranges.s (.debug_info): Pad the only CU.
Diffstat (limited to 'binutils')
-rw-r--r--binutils/ChangeLog4
-rw-r--r--binutils/dwarf.c15
-rw-r--r--binutils/testsuite/ChangeLog4
-rw-r--r--binutils/testsuite/binutils-all/testranges.s4
4 files changed, 26 insertions, 1 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 107cb8d..e447425 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,7 @@
+2009-09-07 Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ * dwarf.c (process_debug_info): Support section padding abbrev codes.
+
2009-09-07 Tristan Gingold <gingold@adacore.com>
* po/binutils.pot: Regenerate.
diff --git a/binutils/dwarf.c b/binutils/dwarf.c
index 9c7c9a8..46b6929 100644
--- a/binutils/dwarf.c
+++ b/binutils/dwarf.c
@@ -1985,9 +1985,22 @@ process_debug_info (struct dwarf_section *section,
abbrev_number = read_leb128 (tags, & bytes_read, 0);
tags += bytes_read;
- /* A null DIE marks the end of a list of siblings. */
+ /* A null DIE marks the end of a list of siblings or it may also be
+ a section padding. */
if (abbrev_number == 0)
{
+ /* Check if it can be a section padding for the last CU. */
+ if (level == 0 && start == end)
+ {
+ unsigned char *chk;
+
+ for (chk = tags; chk < start; chk++)
+ if (*chk != 0)
+ break;
+ if (chk == start)
+ break;
+ }
+
--level;
if (level < 0)
{
diff --git a/binutils/testsuite/ChangeLog b/binutils/testsuite/ChangeLog
index d212b67..250959e 100644
--- a/binutils/testsuite/ChangeLog
+++ b/binutils/testsuite/ChangeLog
@@ -1,5 +1,9 @@
2009-09-07 Jan Kratochvil <jan.kratochvil@redhat.com>
+ * binutils-all/testranges.s (.debug_info): Pad the only CU.
+
+2009-09-07 Jan Kratochvil <jan.kratochvil@redhat.com>
+
* binutils-all/testranges.s: Replace all .long by .4byte.
2009-09-04 DJ Delorie <dj@redhat.com>
diff --git a/binutils/testsuite/binutils-all/testranges.s b/binutils/testsuite/binutils-all/testranges.s
index 0964519..e1f9931b 100644
--- a/binutils/testsuite/binutils-all/testranges.s
+++ b/binutils/testsuite/binutils-all/testranges.s
@@ -32,6 +32,10 @@ debugS:
.uleb128 0x2 ;# (DIE (0x6d) DW_TAG_subprogram)
.ascii "A\0" ;# DW_AT_name
.4byte range_sub - range ;# DW_AT_ranges
+
+ ;# minimal section alignment on alpha-* is 2, ensure no new invalid CU
+ ;# will be started.
+ .balign 2
debugE:
.section .debug_abbrev,"",%progbits