[llvm] r271942 - [yaml2obj] Get rid of MachO header union
Chris Bieneman via llvm-commits
llvm-commits at lists.llvm.org
Mon Jun 6 14:18:43 PDT 2016
Author: cbieneman
Date: Mon Jun 6 16:18:43 2016
New Revision: 271942
URL: http://llvm.org/viewvc/llvm-project?rev=271942&view=rev
Log:
[yaml2obj] Get rid of MachO header union
This is based on post-commit feedback from Sean Silva.
Modified:
llvm/trunk/tools/yaml2obj/yaml2macho.cpp
Modified: llvm/trunk/tools/yaml2obj/yaml2macho.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/yaml2obj/yaml2macho.cpp?rev=271942&r1=271941&r2=271942&view=diff
==============================================================================
--- llvm/trunk/tools/yaml2obj/yaml2macho.cpp (original)
+++ llvm/trunk/tools/yaml2obj/yaml2macho.cpp Mon Jun 6 16:18:43 2016
@@ -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_ostre
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();
}
More information about the llvm-commits
mailing list