<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Fri, Jan 24, 2014 at 12:54 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">
Author: ruiu<br>
Date: Fri Jan 24 14:54:10 2014<br>
New Revision: 200038<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=200038&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=200038&view=rev</a><br>
Log:<br>
Support/COFF: Fix PEHeader struct, and define PE32Header as its alias.<br>
<br>
This change does not affect anything because everybody seems to be using<br>
Object/COFF.h instead. But the definition is not for PE32 but for PE32+,<br>
so fix it anyway.<br>
<br>
Modified:<br>
    llvm/trunk/include/llvm/Support/COFF.h<br></blockquote><div><br></div><div>While it is unclear if we will have support for PEP, it doesn't feel like a great idea to simply alias PE32Header as PEHeader.  The PE Header for PE32 and PE32+ are ever so slightly different (they account for the difference by canabalising some of the PE32 header fields and changing the size of other fields).  I think for the sake of clarity, it might be nicer to just define both structs and name them appropriately.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Modified: llvm/trunk/include/llvm/Support/COFF.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/COFF.h?rev=200038&r1=200037&r2=200038&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/COFF.h?rev=200038&r1=200037&r2=200038&view=diff</a><br>

==============================================================================<br>
--- llvm/trunk/include/llvm/Support/COFF.h (original)<br>
+++ llvm/trunk/include/llvm/Support/COFF.h Fri Jan 24 14:54:10 2014<br>
@@ -450,7 +450,7 @@ namespace COFF {<br>
     uint32_t AddressOfNewExeHeader;<br>
   };<br>
<br>
-  struct PEHeader {<br>
+  struct PE32Header {<br>
     enum {<br>
       PE32 = 0x10b,<br>
       PE32_PLUS = 0x20b<br>
@@ -465,7 +465,7 @@ namespace COFF {<br>
     uint32_t AddressOfEntryPoint; // RVA<br>
     uint32_t BaseOfCode; // RVA<br>
     uint32_t BaseOfData; // RVA<br>
-    uint64_t ImageBase;<br>
+    uint32_t ImageBase;<br>
     uint32_t SectionAlignment;<br>
     uint32_t FileAlignment;<br>
     uint16_t MajorOperatingSystemVersion;<br>
@@ -480,14 +480,16 @@ namespace COFF {<br>
     uint32_t CheckSum;<br>
     uint16_t Subsystem;<br>
     uint16_t DLLCharacteristics;<br>
-    uint64_t SizeOfStackReserve;<br>
-    uint64_t SizeOfStackCommit;<br>
-    uint64_t SizeOfHeapReserve;<br>
-    uint64_t SizeOfHeapCommit;<br>
+    uint32_t SizeOfStackReserve;<br>
+    uint32_t SizeOfStackCommit;<br>
+    uint32_t SizeOfHeapReserve;<br>
+    uint32_t SizeOfHeapCommit;<br>
     uint32_t LoaderFlags;<br>
     uint32_t NumberOfRvaAndSize;<br>
   };<br>
<br>
+  typedef PE32Header PEHeader;<br>
+<br>
   struct DataDirectory {<br>
     uint32_t RelativeVirtualAddress;<br>
     uint32_t Size;<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>Saleem Abdulrasool<br>compnerd (at) compnerd (dot) org
</div></div>