This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[gold commit] PR 23046: Fix second bug where --icf=safe triggers segfault when linking ARM
- From: ccoutant at gmail dot com
- To: binutils at sourceware dot org
- Date: Thu, 19 Apr 2018 10:21:45 -0700
- Subject: [gold commit] PR 23046: 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.
2018-04-19 Cary Coutant <ccoutant@gmail.com>
gold/
PR gold/23046
* gc.h (gc_process_relocs): Pass target to
scan.local_reloc_may_be_function_pointer.
diff --git a/gold/gc.h b/gold/gc.h
index 00f383f443..7c79c23aa9 100644
--- a/gold/gc.h
+++ b/gold/gc.h
@@ -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))