uses_symbol_base() const
{ return this->uses_symbol_base_; }
+ // Whether relocation uses the symbol.
+ bool
+ uses_symbol() const
+ { return this->uses_symbol_; }
+
// Return the type of relative address base or RAB_NONE if this
// is not a relative addressing relocation.
Relative_address_base
bool uses_symbol_base_ : 1;
// Whether this uses an addend.
bool uses_addend_ : 1;
+ // Whether this uses the symbol.
+ bool uses_symbol_ : 1;
};
// Arm_reloc_property_table. This table is used for looking up propeties
return this->table_[code];
}
+ // Like get_reloc_property but only return non-NULL if relocation code is
+ // static and implemented.
+ const Arm_reloc_property*
+ get_implemented_static_reloc_property(unsigned int code) const
+ {
+ gold_assert(code < Property_table_size);
+ const Arm_reloc_property* arp = this->table_[code];
+ return ((arp != NULL
+ && (arp->reloc_type() == Arm_reloc_property::RT_STATIC)
+ && arp->is_implemented())
+ ? arp
+ : NULL);
+ }
+
+ // Return a string describing the a relocation code that is not
+ // an implemented static reloc code.
+ std::string
+ reloc_name_in_error_message(unsigned int code);
+
private:
// Copying is not allowed.
Arm_reloc_property_table(const Arm_reloc_property_table&);