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