OSDN Git Service

binutils/
authorJan Kratochvil <jan.kratochvil@redhat.com>
Mon, 7 Sep 2009 18:07:02 +0000 (18:07 +0000)
committerJan Kratochvil <jan.kratochvil@redhat.com>
Mon, 7 Sep 2009 18:07:02 +0000 (18:07 +0000)
* dwarf.c (process_debug_info): Support section padding abbrev codes.

binutils/testsuite/
* binutils-all/testranges.s (.debug_info): Pad the only CU.

binutils/ChangeLog
binutils/dwarf.c
binutils/testsuite/ChangeLog
binutils/testsuite/binutils-all/testranges.s

index 107cb8d..e447425 100644 (file)
@@ -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.
index 9c7c9a8..46b6929 100644 (file)
@@ -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)
                {
index d212b67..250959e 100644 (file)
@@ -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>
index 0964519..e1f9931 100644 (file)
@@ -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