diff options
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/elfread.c | 8 |
2 files changed, 10 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 67e1bab..9de1b10 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,10 @@ 2018-04-26 Pedro Alves <palves@redhat.com> + * elfread.c (elf_gnu_ifunc_resolve_by_got): Don't write to *ADDR_P + unless we actually resolved the ifunc. + +2018-04-26 Pedro Alves <palves@redhat.com> + * c-exp.y (variable production): Prefer ifunc minsyms over regular function symbols. * symtab.c (find_gnu_ifunc): New function. diff --git a/gdb/elfread.c b/gdb/elfread.c index 16a692d..42a2c92 100644 --- a/gdb/elfread.c +++ b/gdb/elfread.c @@ -833,10 +833,12 @@ elf_gnu_ifunc_resolve_by_got (const char *name, CORE_ADDR *addr_p) ¤t_target); addr = gdbarch_addr_bits_remove (gdbarch, addr); - if (addr_p) - *addr_p = addr; if (elf_gnu_ifunc_record_cache (name, addr)) - return 1; + { + if (addr_p != NULL) + *addr_p = addr; + return 1; + } } return 0; |