diff options
author | Jan Kratochvil <jan.kratochvil@redhat.com> | 2011-05-11 04:56:08 +0000 |
---|---|---|
committer | Jan Kratochvil <jan.kratochvil@redhat.com> | 2011-05-11 04:56:08 +0000 |
commit | 5488dafb5a9528b7381ea2a0d6218504fce92b68 (patch) | |
tree | 043545375d78e295485ee951fe2222227f825390 /gdb | |
parent | 403676b5704d576dfc3a663e4d55d6525053ce3f (diff) | |
download | gdb-5488dafb5a9528b7381ea2a0d6218504fce92b68.zip gdb-5488dafb5a9528b7381ea2a0d6218504fce92b68.tar.gz gdb-5488dafb5a9528b7381ea2a0d6218504fce92b68.tar.bz2 |
gdb/
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.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 10 | ||||
-rw-r--r-- | gdb/symfile.c | 10 | ||||
-rw-r--r-- | gdb/symfile.h | 2 |
3 files changed, 14 insertions, 8 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 30c4078..b98297c 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -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. diff --git a/gdb/symfile.c b/gdb/symfile.c index cec6870..4689e0e 100644 --- a/gdb/symfile.c +++ b/gdb/symfile.c @@ -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; } } diff --git a/gdb/symfile.h b/gdb/symfile.h index 4dfd4d3..3544475 100644 --- a/gdb/symfile.h +++ b/gdb/symfile.h @@ -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]; }; |