================ @@ -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 cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits