================
@@ -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;
----------------
MaskRay wrote:
Ditto, here I want to avoid unneeded endianness difference. `Elf_Addend` is a
`packed<X>` type, which we want to avoid here.
https://github.com/llvm/llvm-project/pull/91280
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits