Fix 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. gold/ PR gold/23046 * gc.h (gc_process_relocs): Pass target to scan.global_reloc_may_be_function_pointer.
This commit is contained in:
parent
702d167134
commit
aae8280935
@ -1,3 +1,9 @@
|
|||||||
|
2018-04-14 Cary Coutant <ccoutant@gmail.com>
|
||||||
|
|
||||||
|
PR gold/23046
|
||||||
|
* gc.h (gc_process_relocs): Pass target to
|
||||||
|
scan.global_reloc_may_be_function_pointer.
|
||||||
|
|
||||||
2018-04-09 Alan Modra <amodra@gmail.com>
|
2018-04-09 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
* configure: Regenerate.
|
* configure: Regenerate.
|
||||||
|
@ -300,7 +300,7 @@ gc_process_relocs(
|
|||||||
&& dst_obj != NULL
|
&& dst_obj != NULL
|
||||||
&& (!is_ordinary
|
&& (!is_ordinary
|
||||||
|| scan.global_reloc_may_be_function_pointer(
|
|| scan.global_reloc_may_be_function_pointer(
|
||||||
symtab, NULL, NULL, src_obj, src_indx, NULL, reloc,
|
symtab, NULL, target, src_obj, src_indx, NULL, reloc,
|
||||||
r_type, gsym)))
|
r_type, gsym)))
|
||||||
symtab->icf()->set_section_has_function_pointers(dst_obj, dst_indx);
|
symtab->icf()->set_section_has_function_pointers(dst_obj, dst_indx);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user