Define endianness-aware type for Elf_Chdr.
llvm-svn: 274728
This commit is contained in:
parent
7f92eab5af
commit
830c078d8b
|
|
@ -34,6 +34,7 @@ template <class ELFT> struct Elf_Vernaux_Impl;
|
||||||
template <class ELFT> struct Elf_Versym_Impl;
|
template <class ELFT> struct Elf_Versym_Impl;
|
||||||
template <class ELFT> struct Elf_Hash_Impl;
|
template <class ELFT> struct Elf_Hash_Impl;
|
||||||
template <class ELFT> struct Elf_GnuHash_Impl;
|
template <class ELFT> struct Elf_GnuHash_Impl;
|
||||||
|
template <class ELFT> struct Elf_Chdr_Impl;
|
||||||
|
|
||||||
template <endianness E, bool Is64> struct ELFType {
|
template <endianness E, bool Is64> struct ELFType {
|
||||||
private:
|
private:
|
||||||
|
|
@ -59,6 +60,7 @@ public:
|
||||||
typedef Elf_Versym_Impl<ELFType<E, Is64>> Versym;
|
typedef Elf_Versym_Impl<ELFType<E, Is64>> Versym;
|
||||||
typedef Elf_Hash_Impl<ELFType<E, Is64>> Hash;
|
typedef Elf_Hash_Impl<ELFType<E, Is64>> Hash;
|
||||||
typedef Elf_GnuHash_Impl<ELFType<E, Is64>> GnuHash;
|
typedef Elf_GnuHash_Impl<ELFType<E, Is64>> GnuHash;
|
||||||
|
typedef Elf_Chdr_Impl<ELFType<E, Is64>> Chdr;
|
||||||
typedef ArrayRef<Dyn> DynRange;
|
typedef ArrayRef<Dyn> DynRange;
|
||||||
typedef ArrayRef<Shdr> ShdrRange;
|
typedef ArrayRef<Shdr> ShdrRange;
|
||||||
typedef ArrayRef<Sym> SymRange;
|
typedef ArrayRef<Sym> SymRange;
|
||||||
|
|
@ -558,6 +560,24 @@ struct Elf_GnuHash_Impl {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Compressed section headers.
|
||||||
|
template <endianness TargetEndianness>
|
||||||
|
struct Elf_Chdr_Impl<ELFType<TargetEndianness, false>> {
|
||||||
|
LLVM_ELF_IMPORT_TYPES(TargetEndianness, false)
|
||||||
|
Elf_Word ch_type;
|
||||||
|
Elf_Word ch_size;
|
||||||
|
Elf_Word ch_addralign;
|
||||||
|
};
|
||||||
|
|
||||||
|
template <endianness TargetEndianness>
|
||||||
|
struct Elf_Chdr_Impl<ELFType<TargetEndianness, true>> {
|
||||||
|
LLVM_ELF_IMPORT_TYPES(TargetEndianness, true)
|
||||||
|
Elf_Word ch_type;
|
||||||
|
Elf_Word ch_reserved;
|
||||||
|
Elf_Xword ch_size;
|
||||||
|
Elf_Xword ch_addralign;
|
||||||
|
};
|
||||||
|
|
||||||
// MIPS .reginfo section
|
// MIPS .reginfo section
|
||||||
template <class ELFT>
|
template <class ELFT>
|
||||||
struct Elf_Mips_RegInfo;
|
struct Elf_Mips_RegInfo;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue