[llvm] r239110 - [Object, MachO] Fixup for r239075: use union to store mach_header and mach_header_64.
Alexey Samsonov
vonosmas at gmail.com
Thu Jun 4 15:49:56 PDT 2015
Author: samsonov
Date: Thu Jun 4 17:49:55 2015
New Revision: 239110
URL: http://llvm.org/viewvc/llvm-project?rev=239110&view=rev
Log:
[Object, MachO] Fixup for r239075: use union to store mach_header and mach_header_64.
Modified:
llvm/trunk/include/llvm/Object/MachO.h
llvm/trunk/lib/Object/MachOObjectFile.cpp
Modified: llvm/trunk/include/llvm/Object/MachO.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Object/MachO.h?rev=239110&r1=239109&r2=239110&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Object/MachO.h (original)
+++ llvm/trunk/include/llvm/Object/MachO.h Thu Jun 4 17:49:55 2015
@@ -429,7 +429,10 @@ public:
}
private:
- MachO::mach_header_64 Header64;
+ union {
+ MachO::mach_header_64 Header64;
+ MachO::mach_header Header;
+ };
typedef SmallVector<const char*, 1> SectionList;
SectionList Sections;
typedef SmallVector<const char*, 1> LibraryList;
Modified: llvm/trunk/lib/Object/MachOObjectFile.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Object/MachOObjectFile.cpp?rev=239110&r1=239109&r2=239110&view=diff
==============================================================================
--- llvm/trunk/lib/Object/MachOObjectFile.cpp (original)
+++ llvm/trunk/lib/Object/MachOObjectFile.cpp Thu Jun 4 17:49:55 2015
@@ -234,10 +234,7 @@ MachOObjectFile::MachOObjectFile(MemoryB
if (is64Bit())
parseHeader(this, Header64, EC);
else
- // First fields of MachO::mach_header_64 are the same as
- // in MachO::mach_header.
- parseHeader(this, *reinterpret_cast<MachO::mach_header *>(&this->Header64),
- EC);
+ parseHeader(this, Header, EC);
if (EC)
return;
@@ -1251,7 +1248,6 @@ unsigned MachOObjectFile::getArch() cons
Triple MachOObjectFile::getArch(const char **McpuDefault,
Triple *ThumbTriple) const {
- const auto &Header = getHeader();
*ThumbTriple = getThumbArch(Header.cputype, Header.cpusubtype, McpuDefault);
return getArch(Header.cputype, Header.cpusubtype, McpuDefault);
}
@@ -2186,9 +2182,7 @@ MachOObjectFile::getDice(DataRefImpl Rel
}
const MachO::mach_header &MachOObjectFile::getHeader() const {
- // First fields of MachO::mach_header_64 are the same as
- // in MachO::mach_header.
- return *reinterpret_cast<const MachO::mach_header *>(&this->Header64);
+ return Header;
}
const MachO::mach_header_64 &MachOObjectFile::getHeader64() const {
More information about the llvm-commits
mailing list