aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/syms.c10
2 files changed, 11 insertions, 4 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index d148669..1b56e1d 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2013-06-03 Alan Modra <amodra@gmail.com>
+
+ * syms.c (_bfd_stab_section_find_nearest_line): Add last_str
+ var. Use it with last_stab.
+
2013-05-30 Paul Brook <paul@codesourcery.com>
* bfd-in2.h: Regenerate.
diff --git a/bfd/syms.c b/bfd/syms.c
index 98d596e..9d91d48 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;