summaryrefslogtreecommitdiff
path: root/bfd/syms.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@bigpond.net.au>2013-06-03 04:11:09 +0000
committerAlan Modra <amodra@bigpond.net.au>2013-06-03 04:11:09 +0000
commit6c33daf4636d93d7bfaed33d7b1db4da3e99ee38 (patch)
treee0ca30239395145063624dae2cbe09c25202096c /bfd/syms.c
parentf4da224aa1610c3185f6ce88e5b33c5ca19ebed8 (diff)
downloadbinutils-redhat-6c33daf4636d93d7bfaed33d7b1db4da3e99ee38.tar.gz
* syms.c (_bfd_stab_section_find_nearest_line): Add last_str
var. Use it with last_stab.
Diffstat (limited to 'bfd/syms.c')
-rw-r--r--bfd/syms.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/bfd/syms.c b/bfd/syms.c
index 98d596ed44..9d91d48e96 100644
--- a/bfd/syms.c
+++ b/bfd/syms.c
@@ -934,7 +934,7 @@ _bfd_stab_section_find_nearest_line (bfd *abfd,
struct stab_find_info *info;
bfd_size_type stabsize, strsize;
bfd_byte *stab, *str;
- bfd_byte *last_stab = NULL;
+ bfd_byte *last_stab, *last_str;
bfd_size_type stroff;
struct indexentry *indexentry;
char *file_name;
@@ -1147,8 +1147,9 @@ _bfd_stab_section_find_nearest_line (bfd *abfd,
file_name = NULL;
directory_name = NULL;
saw_fun = 1;
+ stroff = 0;
- for (i = 0, stroff = 0, stab = info->stabs, str = info->strs;
+ for (i = 0, last_stab = stab = info->stabs, last_str = str = info->strs;
i < info->indextablesize && stab < info->stabs + stabsize;
stab += STABSIZE)
{
@@ -1174,7 +1175,7 @@ _bfd_stab_section_find_nearest_line (bfd *abfd,
{
info->indextable[i].val = bfd_get_32 (abfd, last_stab + VALOFF);
info->indextable[i].stab = last_stab;
- info->indextable[i].str = str;
+ info->indextable[i].str = last_str;
info->indextable[i].directory_name = directory_name;
info->indextable[i].file_name = file_name;
info->indextable[i].function_name = NULL;
@@ -1192,6 +1193,7 @@ _bfd_stab_section_find_nearest_line (bfd *abfd,
else
{
last_stab = stab;
+ last_str = str;
if (stab + STABSIZE >= info->stabs + stabsize
|| *(stab + STABSIZE + TYPEOFF) != (bfd_byte) N_SO)
{
@@ -1242,7 +1244,7 @@ _bfd_stab_section_find_nearest_line (bfd *abfd,
{
info->indextable[i].val = bfd_get_32 (abfd, last_stab + VALOFF);
info->indextable[i].stab = last_stab;
- info->indextable[i].str = str;
+ info->indextable[i].str = last_str;
info->indextable[i].directory_name = directory_name;
info->indextable[i].file_name = file_name;
info->indextable[i].function_name = NULL;