aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2013-02-07 04:20:31 +0000
committerAlan Modra <amodra@gmail.com>2013-02-07 04:20:31 +0000
commit1965d5f2d027f2a389ef64079123fe39ab83a034 (patch)
tree08d4661ca82d1a48b3872d4f5de627fd23610b57
parentdafbc74d2c30322553791e940a3e7110be39ed10 (diff)
downloadgdb-1965d5f2d027f2a389ef64079123fe39ab83a034.zip
gdb-1965d5f2d027f2a389ef64079123fe39ab83a034.tar.gz
gdb-1965d5f2d027f2a389ef64079123fe39ab83a034.tar.bz2
PR binutils/15106
* elf.c (elf_find_function): Don't cache if symbols change.
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elf.c3
2 files changed, 8 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index c13b5bc..c652c35 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2013-02-07 Roberto Agostino Vitillo <ra.vitillo@gmail.com>
+
+ PR binutils/15106
+ * elf.c (elf_find_function): Don't cache if symbols change.
+
2013-02-07 Alan Modra <amodra@gmail.com>
PR binutils/14873
diff --git a/bfd/elf.c b/bfd/elf.c
index 7ab3683..9d6ff31 100644
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -7505,6 +7505,7 @@ elf_find_function (bfd *abfd,
const char **functionname_ptr)
{
static asection *last_section;
+ static asymbol **last_symbols;
static asymbol *func;
static const char *filename;
static bfd_size_type func_size;
@@ -7513,6 +7514,7 @@ elf_find_function (bfd *abfd,
return FALSE;
if (last_section != section
+ || last_symbols != symbols
|| func == NULL
|| offset < func->value
|| offset >= func->value + func_size)
@@ -7538,6 +7540,7 @@ elf_find_function (bfd *abfd,
state = nothing_seen;
func_size = 0;
last_section = section;
+ last_symbols = symbols;
for (p = symbols; *p != NULL; p++)
{