diff options
author | Cary Coutant <ccoutant@gmail.com> | 2018-04-19 10:20:08 -0700 |
---|---|---|
committer | Cary Coutant <ccoutant@gmail.com> | 2018-04-19 10:20:08 -0700 |
commit | d83d54033545c0e7b668950b127753c88a33f950 (patch) | |
tree | ed509dc053b6db9b7e27acdb66550d9a724b7581 /gold/gc.h | |
parent | f6a8b8c7ac2d5369070a6b76a94ee0f3052433ff (diff) | |
download | gdb-d83d54033545c0e7b668950b127753c88a33f950.zip gdb-d83d54033545c0e7b668950b127753c88a33f950.tar.gz gdb-d83d54033545c0e7b668950b127753c88a33f950.tar.bz2 |
Fix second bug where --icf=safe triggers segfault when linking ARM.
When checking a R_ARM_TARGET[12] relocation, we need a valid target
pointer, but the garbage collection code was passing a NULL instead.
The previous fix for this bug fixed the call to
scan.global_reloc_may_be_function_pointer, but missed the similar
call to scan.local_reloc_may_be_function_pointer.
gold/
PR gold/23046
* gc.h (gc_process_relocs): Pass target to
scan.local_reloc_may_be_function_pointer.
Diffstat (limited to 'gold/gc.h')
-rw-r--r-- | gold/gc.h | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -263,7 +263,7 @@ gc_process_relocs( if (is_ordinary && check_section_for_function_pointers && lsym.get_st_type() != elfcpp::STT_OBJECT - && scan.local_reloc_may_be_function_pointer(symtab, NULL, NULL, + && scan.local_reloc_may_be_function_pointer(symtab, NULL, target, src_obj, src_indx, NULL, reloc, r_type, lsym)) |