[llvm] r274728 - Define endianness-aware type for Elf_Chdr.

Sean Silva via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 7 13:58:26 PDT 2016


Thanks. Not sure why google was not finding it.

On Thu, Jul 7, 2016 at 1:26 PM, Rui Ueyama <ruiu at google.com> wrote:

> Done in r274793.
>
> On Thu, Jul 7, 2016 at 1:17 PM, Sean Silva <chisophugis at gmail.com> wrote:
>
>> Do you have a link to the spec that defines this? A quick googling
>> doesn't find anything.
>>
>> -- Sean Silva
>>
>> On Wed, Jul 6, 2016 at 8:53 PM, Rui Ueyama via llvm-commits <
>> llvm-commits at lists.llvm.org> wrote:
>>
>>> Author: ruiu
>>> Date: Wed Jul  6 22:53:00 2016
>>> New Revision: 274728
>>>
>>> URL: http://llvm.org/viewvc/llvm-project?rev=274728&view=rev
>>> Log:
>>> Define endianness-aware type for Elf_Chdr.
>>>
>>> Modified:
>>>     llvm/trunk/include/llvm/Object/ELFTypes.h
>>>
>>> Modified: llvm/trunk/include/llvm/Object/ELFTypes.h
>>> URL:
>>> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Object/ELFTypes.h?rev=274728&r1=274727&r2=274728&view=diff
>>>
>>> ==============================================================================
>>> --- llvm/trunk/include/llvm/Object/ELFTypes.h (original)
>>> +++ llvm/trunk/include/llvm/Object/ELFTypes.h Wed Jul  6 22:53:00 2016
>>> @@ -34,6 +34,7 @@ template <class ELFT> struct Elf_Vernaux
>>>  template <class ELFT> struct Elf_Versym_Impl;
>>>  template <class ELFT> struct Elf_Hash_Impl;
>>>  template <class ELFT> struct Elf_GnuHash_Impl;
>>> +template <class ELFT> struct Elf_Chdr_Impl;
>>>
>>>  template <endianness E, bool Is64> struct ELFType {
>>>  private:
>>> @@ -59,6 +60,7 @@ public:
>>>    typedef Elf_Versym_Impl<ELFType<E, Is64>> Versym;
>>>    typedef Elf_Hash_Impl<ELFType<E, Is64>> Hash;
>>>    typedef Elf_GnuHash_Impl<ELFType<E, Is64>> GnuHash;
>>> +  typedef Elf_Chdr_Impl<ELFType<E, Is64>> Chdr;
>>>    typedef ArrayRef<Dyn> DynRange;
>>>    typedef ArrayRef<Shdr> ShdrRange;
>>>    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
>>>  template <class ELFT>
>>>  struct Elf_Mips_RegInfo;
>>>
>>>
>>> _______________________________________________
>>> llvm-commits mailing list
>>> llvm-commits at lists.llvm.org
>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160707/61a761a9/attachment.html>


More information about the llvm-commits mailing list