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-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.
 
       struct other_sections *osp;
 
       osp = &addrs->other[i];
-      if (osp->addr == 0)
+      if (osp->sectindex == -1)
        continue;
 
       /* Record all sections in offsets.  */
   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
                     bfd_get_filename (abfd));
 
          addrs->other[i].addr = 0;
-
-         /* SECTINDEX is invalid if ADDR is zero.  */
+         addrs->other[i].sectindex = -1;
        }
     }
 
 
     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];
 };