* gas/elf/elf.exp (groupautob): Don't run on xtensa.
[deliverable/binutils-gdb.git] / gold / arm-reloc-property.h
index 2d88211a6aed2fb2d060b7b72bdd4d293cdc9141..e7d7f5094159053eb34c619215465f9e651f1f35 100644 (file)
@@ -132,6 +132,11 @@ class Arm_reloc_property
   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
@@ -273,6 +278,8 @@ class Arm_reloc_property
   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
@@ -293,6 +300,25 @@ class Arm_reloc_property_table
     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&);
This page took 0.023569 seconds and 4 git commands to generate.