summaryrefslogtreecommitdiff
path: root/bfd/libbfd-in.h
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2019-11-27 18:00:59 +1030
committerAlan Modra <amodra@gmail.com>2019-11-27 19:10:11 +1030
commit7f3bf38453acbabf7286dd7f8ce2688282e7b9cd (patch)
treef8f2436c5e8dc4e5deb7089b7418f76a72aab57f /bfd/libbfd-in.h
parente76790600aeba4939225eda32e59642ed2813ac8 (diff)
downloadbinutils-gdb-7f3bf38453acbabf7286dd7f8ce2688282e7b9cd.tar.gz
PR23652, Use symbols from debug bfd for _bfd_elf_find_function properly
There were a number of problems with the previous patch. Firstly, _bfd_dwarf2_stash_syms didn't do anything when the original file had dynamic symbols, and secondly, info found by the symbol search didn't make it out of _bfd_elf_find_nearest_line except in the case of DWARF functions without external linkage. PR 23652 * dwarf2.c (_bfd_dwarf2_stash_syms): Break out of loop on finding matching section. (_bfd_dwarf2_find_nearest_line): Return an int, with value 2 when returning info from the symbol table. Do the _bfd_elf_find_function search also when !found. Call _bfd_dwarf2_stash_syms regardless of symbols. * elf64-alpha.c (elf64_alpha_find_nearest_line): Accept dwarf2 result of 1 only. * elfxx-mips.c (_bfd_mips_elf_find_nearest_line): Likewise. * libbfd-in.h (_bfd_dwarf2_find_nearest_line): Update prototype. * libbfd.h: Regenerate.
Diffstat (limited to 'bfd/libbfd-in.h')
-rw-r--r--bfd/libbfd-in.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/bfd/libbfd-in.h b/bfd/libbfd-in.h
index f498ffd5e7a..64ae6c6e914 100644
--- a/bfd/libbfd-in.h
+++ b/bfd/libbfd-in.h
@@ -596,7 +596,7 @@ struct dwarf_debug_section
extern const struct dwarf_debug_section dwarf_debug_sections[] ATTRIBUTE_HIDDEN;
/* Find the nearest line using DWARF 2 debugging information. */
-extern bfd_boolean _bfd_dwarf2_find_nearest_line
+extern int _bfd_dwarf2_find_nearest_line
(bfd *, asymbol **, asymbol *, asection *, bfd_vma,
const char **, const char **, unsigned int *, unsigned int *,
const struct dwarf_debug_section *, void **) ATTRIBUTE_HIDDEN;