]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
gdb/
authorJan Kratochvil <jan.kratochvil@redhat.com>
Wed, 11 May 2011 04:56:08 +0000 (04:56 +0000)
committerJan Kratochvil <jan.kratochvil@redhat.com>
Wed, 11 May 2011 04:56:08 +0000 (04:56 +0000)
Make addrs->SECTINDEX always defined.
* symfile.c (relative_addr_info_to_section_offsets): Check for
SECTINDEX -1, not for zero ADDR.
(addrs_section_compar): Remove checking for invalid SECTINDEX.
(addr_info_make_relative): Set SECTINDEX to -1 for unmatched entries.
* symfile.h (struct section_addr_info) <sectindex>: Update the comment
on its validity.

gdb/ChangeLog
gdb/symfile.c
gdb/symfile.h

index 30c4078a9edff30e21a64a830c19d569049d6d3b..b98297cf104587410bd52d1377a1215dbef99f2f 100644 (file)
@@ -1,3 +1,13 @@
+2011-05-11  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       Make addrs->SECTINDEX always defined.
+       * symfile.c (relative_addr_info_to_section_offsets): Check for
+       SECTINDEX -1, not for zero ADDR.
+       (addrs_section_compar): Remove checking for invalid SECTINDEX.
+       (addr_info_make_relative): Set SECTINDEX to -1 for unmatched entries.
+       * symfile.h (struct section_addr_info) <sectindex>: Update the comment
+       on its validity.
+
 2011-05-10  Doug Evans  <dje@google.com>
 
        * linux-thread-db.c: Whitespace cleanup.
index cec687092c22acb02394769fa0bd951124536301..4689e0e31030f3fcef2e7a6917b55a6ed3932822 100644 (file)
@@ -527,7 +527,7 @@ relative_addr_info_to_section_offsets (struct section_offsets *section_offsets,
       struct other_sections *osp;
 
       osp = &addrs->other[i];
-      if (osp->addr == 0)
+      if (osp->sectindex == -1)
        continue;
 
       /* Record all sections in offsets.  */
@@ -568,10 +568,7 @@ addrs_section_compar (const void *ap, const void *bp)
   if (retval)
     return retval;
 
-  /* SECTINDEX is undefined iff ADDR is zero.  */
-  a_idx = a->addr == 0 ? 0 : a->sectindex;
-  b_idx = b->addr == 0 ? 0 : b->sectindex;
-  return a_idx - b_idx;
+  return a->sectindex - b->sectindex;
 }
 
 /* Provide sorted array of pointers to sections of ADDRS.  The array is
@@ -734,8 +731,7 @@ addr_info_make_relative (struct section_addr_info *addrs, bfd *abfd)
                     bfd_get_filename (abfd));
 
          addrs->other[i].addr = 0;
-
-         /* SECTINDEX is invalid if ADDR is zero.  */
+         addrs->other[i].sectindex = -1;
        }
     }
 
index 4dfd4d36c16dd812009eb69f60c2166ad40a699d..35444756fb21636320da5a8b2178b22e8833d72f 100644 (file)
@@ -86,7 +86,7 @@ struct section_addr_info
     CORE_ADDR addr;
     char *name;
 
-    /* SECTINDEX must be valid for associated BFD if ADDR is not zero.  */
+    /* SECTINDEX must be valid for associated BFD or set to -1.  */
     int sectindex;
   } other[1];
 };