<p dir="ltr">Thanks!</p>
<div class="gmail_quote">On Jun 4, 2015 7:01 PM, "Alexey Samsonov" <<a href="mailto:vonosmas@gmail.com">vonosmas@gmail.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: samsonov<br>
Date: Thu Jun  4 17:49:55 2015<br>
New Revision: 239110<br>
<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject-3Frev-3D239110-26view-3Drev&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=p5oQGkllGE-Fft7upyhF9GLqjjXAUMcPF3KvLRiRI9c&s=4k8Avnkr4ag-I00m8afBAyAFSM_pJ14YbK-sjHhScTU&e=" target="_blank">http://llvm.org/viewvc/llvm-project?rev=239110&view=rev</a><br>
Log:<br>
[Object, MachO] Fixup for r239075: use union to store mach_header and mach_header_64.<br>
<br>
Modified:<br>
    llvm/trunk/include/llvm/Object/MachO.h<br>
    llvm/trunk/lib/Object/MachOObjectFile.cpp<br>
<br>
Modified: llvm/trunk/include/llvm/Object/MachO.h<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_include_llvm_Object_MachO.h-3Frev-3D239110-26r1-3D239109-26r2-3D239110-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=p5oQGkllGE-Fft7upyhF9GLqjjXAUMcPF3KvLRiRI9c&s=tTnedPSgUBiP6NURBZE4raxEn3OUd1P3AtzUEJCj7Ws&e=" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Object/MachO.h?rev=239110&r1=239109&r2=239110&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/Object/MachO.h (original)<br>
+++ llvm/trunk/include/llvm/Object/MachO.h Thu Jun  4 17:49:55 2015<br>
@@ -429,7 +429,10 @@ public:<br>
   }<br>
<br>
 private:<br>
-  MachO::mach_header_64 Header64;<br>
+  union {<br>
+    MachO::mach_header_64 Header64;<br>
+    MachO::mach_header Header;<br>
+  };<br>
   typedef SmallVector<const char*, 1> SectionList;<br>
   SectionList Sections;<br>
   typedef SmallVector<const char*, 1> LibraryList;<br>
<br>
Modified: llvm/trunk/lib/Object/MachOObjectFile.cpp<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_lib_Object_MachOObjectFile.cpp-3Frev-3D239110-26r1-3D239109-26r2-3D239110-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=p5oQGkllGE-Fft7upyhF9GLqjjXAUMcPF3KvLRiRI9c&s=tdKE0sfmH2kwI55Gw6VoaJ6gJeaeo4B5-rcXAUdVoXM&e=" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Object/MachOObjectFile.cpp?rev=239110&r1=239109&r2=239110&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Object/MachOObjectFile.cpp (original)<br>
+++ llvm/trunk/lib/Object/MachOObjectFile.cpp Thu Jun  4 17:49:55 2015<br>
@@ -234,10 +234,7 @@ MachOObjectFile::MachOObjectFile(MemoryB<br>
   if (is64Bit())<br>
     parseHeader(this, Header64, EC);<br>
   else<br>
-    // First fields of MachO::mach_header_64 are the same as<br>
-    // in MachO::mach_header.<br>
-    parseHeader(this, *reinterpret_cast<MachO::mach_header *>(&this->Header64),<br>
-                EC);<br>
+    parseHeader(this, Header, EC);<br>
   if (EC)<br>
     return;<br>
<br>
@@ -1251,7 +1248,6 @@ unsigned MachOObjectFile::getArch() cons<br>
<br>
 Triple MachOObjectFile::getArch(const char **McpuDefault,<br>
                                 Triple *ThumbTriple) const {<br>
-  const auto &Header = getHeader();<br>
   *ThumbTriple = getThumbArch(Header.cputype, Header.cpusubtype, McpuDefault);<br>
   return getArch(Header.cputype, Header.cpusubtype, McpuDefault);<br>
 }<br>
@@ -2186,9 +2182,7 @@ MachOObjectFile::getDice(DataRefImpl Rel<br>
 }<br>
<br>
 const MachO::mach_header &MachOObjectFile::getHeader() const {<br>
-  // First fields of MachO::mach_header_64 are the same as<br>
-  // in MachO::mach_header.<br>
-  return *reinterpret_cast<const MachO::mach_header *>(&this->Header64);<br>
+  return Header;<br>
 }<br>
<br>
 const MachO::mach_header_64 &MachOObjectFile::getHeader64() const {<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>