diff options
author | Chris Bieneman <beanz@apple.com> | 2016-06-06 21:18:43 +0000 |
---|---|---|
committer | Chris Bieneman <beanz@apple.com> | 2016-06-06 21:18:43 +0000 |
commit | 468208a1de96a2be1d69e0030eb6c9efc1ffc30c (patch) | |
tree | b30d4e8f15fd29bde49cf05783f1bc28e8bc2513 | |
parent | 25e8b05d031f2e1fd2c9420a7cdafdcdbf1563ff (diff) | |
download | bcm5719-llvm-468208a1de96a2be1d69e0030eb6c9efc1ffc30c.tar.gz bcm5719-llvm-468208a1de96a2be1d69e0030eb6c9efc1ffc30c.zip |
[yaml2obj] Get rid of MachO header union
This is based on post-commit feedback from Sean Silva.
llvm-svn: 271942
-rw-r--r-- | llvm/tools/yaml2obj/yaml2macho.cpp | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/llvm/tools/yaml2obj/yaml2macho.cpp b/llvm/tools/yaml2obj/yaml2macho.cpp index e08a3f2b9f9..510f7609b75 100644 --- a/llvm/tools/yaml2obj/yaml2macho.cpp +++ b/llvm/tools/yaml2obj/yaml2macho.cpp @@ -31,8 +31,7 @@ public: MachOWriter(MachOYAML::Object &Obj) : Obj(Obj), is64Bit(true), fileStart(0) { is64Bit = Obj.Header.magic == MachO::MH_MAGIC_64 || Obj.Header.magic == MachO::MH_CIGAM_64; - memset(reinterpret_cast<void *>(&Header64), 0, - sizeof(MachO::mach_header_64)); + memset(reinterpret_cast<void *>(&Header), 0, sizeof(MachO::mach_header_64)); assert((is64Bit || Obj.Header.reserved == 0xDEADBEEFu) && "32-bit MachO has reserved in header"); assert((!is64Bit || Obj.Header.reserved != 0xDEADBEEFu) && @@ -64,10 +63,7 @@ private: bool is64Bit; uint64_t fileStart; - union { - MachO::mach_header_64 Header64; - MachO::mach_header Header; - }; + MachO::mach_header_64 Header; }; Error MachOWriter::writeMachO(raw_ostream &OS) { @@ -89,12 +85,11 @@ Error MachOWriter::writeHeader(raw_ostream &OS) { Header.ncmds = Obj.Header.ncmds; Header.sizeofcmds = Obj.Header.sizeofcmds; Header.flags = Obj.Header.flags; - Header64.reserved = Obj.Header.reserved; + Header.reserved = Obj.Header.reserved; - if (is64Bit) - OS.write((const char *)&Header64, sizeof(MachO::mach_header_64)); - else - OS.write((const char *)&Header, sizeof(MachO::mach_header)); + auto header_size = + is64Bit ? sizeof(MachO::mach_header_64) : sizeof(MachO::mach_header); + OS.write((const char *)&Header, header_size); return Error::success(); } |