gdb: add target_ops::supports_displaced_step
[deliverable/binutils-gdb.git] / gold / reloc-types.h
index e8a0689d0ac7b69b5940e37017092e877c69296e..3671063ef0f36eeffe41181a05eecdb63cfb6341 100644 (file)
@@ -1,6 +1,6 @@
 // reloc-types.h -- ELF relocation templates for gold  -*- C++ -*-
 
-// Copyright 2006, 2007 Free Software Foundation, Inc.
+// Copyright (C) 2006-2020 Free Software Foundation, Inc.
 // Written by Ian Lance Taylor <iant@google.com>.
 
 // This file is part of gold.
@@ -41,14 +41,42 @@ template<int size, bool big_endian>
 struct Reloc_types<elfcpp::SHT_REL, size, big_endian>
 {
   typedef typename elfcpp::Rel<size, big_endian> Reloc;
+  typedef typename elfcpp::Rel_write<size, big_endian> Reloc_write;
   static const int reloc_size = elfcpp::Elf_sizes<size>::rel_size;
+
+  static inline typename elfcpp::Elf_types<size>::Elf_Swxword
+  get_reloc_addend(const Reloc*)
+  { gold_unreachable(); }
+
+  static inline typename elfcpp::Elf_types<size>::Elf_Swxword
+  get_reloc_addend_noerror(const Reloc*)
+  { return 0; }
+
+  static inline void
+  set_reloc_addend(Reloc_write*,
+                  typename elfcpp::Elf_types<size>::Elf_Swxword)
+  { gold_unreachable(); }
 };
 
 template<int size, bool big_endian>
 struct Reloc_types<elfcpp::SHT_RELA, size, big_endian>
 {
   typedef typename elfcpp::Rela<size, big_endian> Reloc;
+  typedef typename elfcpp::Rela_write<size, big_endian> Reloc_write;
   static const int reloc_size = elfcpp::Elf_sizes<size>::rela_size;
+
+  static inline typename elfcpp::Elf_types<size>::Elf_Swxword
+  get_reloc_addend(const Reloc* p)
+  { return p->get_r_addend(); }
+
+  static inline typename elfcpp::Elf_types<size>::Elf_Swxword
+  get_reloc_addend_noerror(const Reloc* p)
+  { return p->get_r_addend(); }
+
+  static inline void
+  set_reloc_addend(Reloc_write* p,
+                  typename elfcpp::Elf_types<size>::Elf_Swxword val)
+  { p->put_r_addend(val); }
 };
 
 }; // End namespace gold.
This page took 0.027177 seconds and 4 git commands to generate.