diff options
author | Doug Kwan <dougkwan@google.com> | 2010-06-25 00:37:40 +0000 |
---|---|---|
committer | Doug Kwan <dougkwan@google.com> | 2010-06-25 00:37:40 +0000 |
commit | 8a75a161b2c2b23f87f986e186c18dc5e267753f (patch) | |
tree | 5f127328523b3a278bdbc64f2cd66e14c42e5d36 /gold/icf.h | |
parent | 4f2a93bda27fb1c25aa5af9bd3cc6a30cda237cb (diff) | |
download | gdb-8a75a161b2c2b23f87f986e186c18dc5e267753f.zip gdb-8a75a161b2c2b23f87f986e186c18dc5e267753f.tar.gz gdb-8a75a161b2c2b23f87f986e186c18dc5e267753f.tar.bz2 |
2010-06-25 Doug Kwan <dougkwan@google.com>
* arm.cc (Target_arm::can_check_for_functions_pointers): Return true.
(Target_arm::section_may_have_icf_unsafe_pointers): New method
definition.
(Target_arm::Scan::local_reloc_may_be_function_pointer,
Target_arm::Scan::global_reloc_may_be_function_pointer): Implement
target hook to detect function points.
(Target_arm::Scan::possible_function_pointer_reloc): New method.
* icf.h (Icf::check_section_for_function_pointers): Change type of
parameter SECTION_NAME to const reference to std::string. Use
target hook to determine if section may have unsafe pointers.
* target.h (Target::section_may_have_icf_unsafe_pointers): New
method definition.
Diffstat (limited to 'gold/icf.h')
-rw-r--r-- | gold/icf.h | 7 |
1 files changed, 3 insertions, 4 deletions
@@ -121,14 +121,13 @@ class Icf // corresponding to taken function pointers. Ignores eh_frame // and vtable sections. inline bool - check_section_for_function_pointers(std::string section_name, + check_section_for_function_pointers(const std::string& section_name, Target* target) { return (parameters->options().icf_safe_folding() && target->can_check_for_function_pointers() - && !is_prefix_of(".rodata._ZTV", section_name.c_str()) - && !is_prefix_of(".data.rel.ro._ZTV", section_name.c_str()) - && !is_prefix_of(".eh_frame", section_name.c_str())); + && target->section_may_have_icf_unsafe_pointers( + section_name.c_str())); } // Returns a map of a section to info (Reloc_info) about its relocations. |