summaryrefslogtreecommitdiff
path: root/gold/arm-reloc-property.cc
diff options
context:
space:
mode:
authorDoug Kwan <dougkwan@google.com>2010-06-30 06:41:09 +0000
committerDoug Kwan <dougkwan@google.com>2010-06-30 06:41:09 +0000
commitb2286c10fe98d0bc1e4e207d0966cbd9e3bba58a (patch)
tree292470d366a43ff72fe1cd45398e3df194f60999 /gold/arm-reloc-property.cc
parent3863f96c205610e5351a0484cc9d45f9779365bf (diff)
2010-06-29 Doug Kwan <dougkwan@google.com>
* arm-reloc-property.cc (Arm_reloc_property::Arm_reloc_property): Initialize USE_SYMBOL_. * arm-reloc-property.h (Arm_reloc_property::uses_symbol): New method definition. (Arm_reloc_property::uses_symbol_): New data member declaration. * arm.cc (Target_arm::Relocate::relocate): Exit early if relocation uses symbol value and symbol is undefined but not weakly undefined.
Diffstat (limited to 'gold/arm-reloc-property.cc')
-rw-r--r--gold/arm-reloc-property.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/gold/arm-reloc-property.cc b/gold/arm-reloc-property.cc
index 4f8fa9e458..007653cb4e 100644
--- a/gold/arm-reloc-property.cc
+++ b/gold/arm-reloc-property.cc
@@ -104,7 +104,8 @@ Arm_reloc_property::Arm_reloc_property(
relative_address_base_(RAB_NONE), is_deprecated_(is_deprecated),
is_implemented_(is_implemented), checks_overflow_(checks_overflow),
uses_got_entry_(false), uses_got_origin_(false), uses_plt_entry_(false),
- uses_thumb_bit_(false), uses_symbol_base_(false), uses_addend_(false)
+ uses_thumb_bit_(false), uses_symbol_base_(false), uses_addend_(false),
+ uses_symbol_(false)
{
// Set size and alignment of static and dynamic relocations.
if (rtype == RT_STATIC)
@@ -246,6 +247,7 @@ Arm_reloc_property::Arm_reloc_property(
}
gold_assert(node->is_leaf() && node->name() == "S");
+ this->uses_symbol_ = true;
delete root_node;
}