From fa549f3baada1dee1b69af1b4db60f8f04bcfae0 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Mon, 3 Jun 2013 04:11:09 +0000 Subject: [PATCH] * syms.c (_bfd_stab_section_find_nearest_line): Add last_str var. Use it with last_stab. --- bfd/ChangeLog | 5 +++++ bfd/syms.c | 10 ++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index d148669a15b..1b56e1d03af 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2013-06-03 Alan Modra + + * syms.c (_bfd_stab_section_find_nearest_line): Add last_str + var. Use it with last_stab. + 2013-05-30 Paul Brook * bfd-in2.h: Regenerate. diff --git a/bfd/syms.c b/bfd/syms.c index 98d596ed44f..9d91d48e963 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; -- 2.30.2