<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jul 7, 2016 at 2:15 PM, Rui Ueyama <span dir="ltr"><<a href="mailto:ruiu@google.com" target="_blank">ruiu@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">All ELF types are duplicated to ELF.h, so what George did was consistent with the existing types, although I admit that that is confusing.</div></blockquote><div><br></div><div>Oh yeah, oops. I guess I meant just the "move over to using ELFTypes.h" part of that.</div><div><br></div><div>-- Sean Silva</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jul 7, 2016 at 2:02 PM, Sean Silva <span dir="ltr"><<a href="mailto:chisophugis@gmail.com" target="_blank">chisophugis@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">George,<div><br></div><div>I noticed that in r269404 you added Elf{32,64}_Chdr to ELF.h, but it really should have been in ELFTypes.h like Rui has done in this patch. Can you please remove the versions in ELF.h? It is practically guaranteed that there is an endianness bug anywhere that is using those types; they should be using ELFTypes.h.<span><font color="#888888"><div><br></div><div>-- Sean Silva</div></font></span></div></div><div class="gmail_extra"><br><div class="gmail_quote"><span>On Wed, Jul 6, 2016 at 8:53 PM, Rui Ueyama via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br></span><div><div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: ruiu<br>
Date: Wed Jul  6 22:53:00 2016<br>
New Revision: 274728<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=274728&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=274728&view=rev</a><br>
Log:<br>
Define endianness-aware type for Elf_Chdr.<br>
<br>
Modified:<br>
    llvm/trunk/include/llvm/Object/ELFTypes.h<br>
<br>
Modified: llvm/trunk/include/llvm/Object/ELFTypes.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Object/ELFTypes.h?rev=274728&r1=274727&r2=274728&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Object/ELFTypes.h?rev=274728&r1=274727&r2=274728&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/Object/ELFTypes.h (original)<br>
+++ llvm/trunk/include/llvm/Object/ELFTypes.h Wed Jul  6 22:53:00 2016<br>
@@ -34,6 +34,7 @@ template <class ELFT> struct Elf_Vernaux<br>
 template <class ELFT> struct Elf_Versym_Impl;<br>
 template <class ELFT> struct Elf_Hash_Impl;<br>
 template <class ELFT> struct Elf_GnuHash_Impl;<br>
+template <class ELFT> struct Elf_Chdr_Impl;<br>
<br>
 template <endianness E, bool Is64> struct ELFType {<br>
 private:<br>
@@ -59,6 +60,7 @@ public:<br>
   typedef Elf_Versym_Impl<ELFType<E, Is64>> Versym;<br>
   typedef Elf_Hash_Impl<ELFType<E, Is64>> Hash;<br>
   typedef Elf_GnuHash_Impl<ELFType<E, Is64>> GnuHash;<br>
+  typedef Elf_Chdr_Impl<ELFType<E, Is64>> Chdr;<br>
   typedef ArrayRef<Dyn> DynRange;<br>
   typedef ArrayRef<Shdr> ShdrRange;<br>
   typedef ArrayRef<Sym> SymRange;<br>
@@ -558,6 +560,24 @@ struct Elf_GnuHash_Impl {<br>
   }<br>
 };<br>
<br>
+// Compressed section headers.<br>
+template <endianness TargetEndianness><br>
+struct Elf_Chdr_Impl<ELFType<TargetEndianness, false>> {<br>
+  LLVM_ELF_IMPORT_TYPES(TargetEndianness, false)<br>
+  Elf_Word ch_type;<br>
+  Elf_Word ch_size;<br>
+  Elf_Word ch_addralign;<br>
+};<br>
+<br>
+template <endianness TargetEndianness><br>
+struct Elf_Chdr_Impl<ELFType<TargetEndianness, true>> {<br>
+  LLVM_ELF_IMPORT_TYPES(TargetEndianness, true)<br>
+  Elf_Word ch_type;<br>
+  Elf_Word ch_reserved;<br>
+  Elf_Xword ch_size;<br>
+  Elf_Xword ch_addralign;<br>
+};<br>
+<br>
 // MIPS .reginfo section<br>
 template <class ELFT><br>
 struct Elf_Mips_RegInfo;<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</blockquote></div></div></div><br></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div></div>