[clang] [llvm] [MC,llvm-readobj,yaml2obj] Support CREL relocation format (PR #91280)
James Henderson via llvm-commits
llvm-commits at lists.llvm.org
Thu May 23 02:38:16 PDT 2024
================
@@ -474,9 +480,28 @@ struct Elf_Rel_Impl<ELFType<Endianness, true>, true>
: public Elf_Rel_Impl<ELFType<Endianness, true>, false> {
LLVM_ELF_IMPORT_TYPES(Endianness, true)
static const bool IsRela = true;
+ static const bool IsCrel = false;
Elf_Sxword r_addend; // Compute value for relocatable field by adding this.
};
+template <bool Is64> struct Elf_Crel_Impl {
+ using uint = std::conditional_t<Is64, uint64_t, uint32_t>;
+ static const bool IsRela = true;
+ static const bool IsCrel = true;
+ uint r_offset;
+ uint32_t r_symidx;
+ uint32_t r_type;
+ std::conditional_t<Is64, int64_t, int32_t> r_addend;
----------------
jh7370 wrote:
Again, if I'm not mistaken, using the ELFType would avoid the need for the `std::conditional` here: you could use the Elf_Addend type, I believe.
https://github.com/llvm/llvm-project/pull/91280
More information about the llvm-commits
mailing list