diff options
Diffstat (limited to 'llvm/tools/llvm-readobj/MachODumper.cpp')
-rw-r--r-- | llvm/tools/llvm-readobj/MachODumper.cpp | 68 |
1 files changed, 38 insertions, 30 deletions
diff --git a/llvm/tools/llvm-readobj/MachODumper.cpp b/llvm/tools/llvm-readobj/MachODumper.cpp index ab77fdcf136..58d2c9fca47 100644 --- a/llvm/tools/llvm-readobj/MachODumper.cpp +++ b/llvm/tools/llvm-readobj/MachODumper.cpp @@ -694,38 +694,46 @@ void MachODumper::printMachODataInCode() { void MachODumper::printMachOVersionMin() { for (const auto &Load : Obj->load_commands()) { - if (Load.C.cmd == MachO::LC_VERSION_MIN_MACOSX || - Load.C.cmd == MachO::LC_VERSION_MIN_IPHONEOS) { - MachO::version_min_command VMC = Obj->getVersionMinLoadCommand(Load); - DictScope Group(W, "MinVersion"); - StringRef Cmd; - if (Load.C.cmd == MachO::LC_VERSION_MIN_MACOSX) - Cmd = "LC_VERSION_MIN_MACOSX"; - else - Cmd = "LC_VERSION_MIN_IPHONEOS"; - W.printString("Cmd", Cmd); - W.printNumber("Size", VMC.cmdsize); - SmallString<32> Version; - Version = utostr(MachOObjectFile::getVersionMinMajor(VMC, false)) + "." + - utostr(MachOObjectFile::getVersionMinMinor(VMC, false)); - uint32_t Update = MachOObjectFile::getVersionMinUpdate(VMC, false); + StringRef Cmd; + switch (Load.C.cmd) { + case MachO::LC_VERSION_MIN_MACOSX: + Cmd = "LC_VERSION_MIN_MACOSX"; + break; + case MachO::LC_VERSION_MIN_IPHONEOS: + Cmd = "LC_VERSION_MIN_IPHONEOS"; + break; + case MachO::LC_VERSION_MIN_TVOS: + Cmd = "LC_VERSION_MIN_TVOS"; + break; + case MachO::LC_VERSION_MIN_WATCHOS: + Cmd = "LC_VERSION_MIN_WATCHOS"; + break; + default: + continue; + } + + MachO::version_min_command VMC = Obj->getVersionMinLoadCommand(Load); + DictScope Group(W, "MinVersion"); + W.printString("Cmd", Cmd); + W.printNumber("Size", VMC.cmdsize); + SmallString<32> Version; + Version = utostr(MachOObjectFile::getVersionMinMajor(VMC, false)) + "." + + utostr(MachOObjectFile::getVersionMinMinor(VMC, false)); + uint32_t Update = MachOObjectFile::getVersionMinUpdate(VMC, false); + if (Update != 0) + Version += "." + utostr(MachOObjectFile::getVersionMinUpdate(VMC, false)); + W.printString("Version", Version); + SmallString<32> SDK; + if (VMC.sdk == 0) + SDK = "n/a"; + else { + SDK = utostr(MachOObjectFile::getVersionMinMajor(VMC, true)) + "." + + utostr(MachOObjectFile::getVersionMinMinor(VMC, true)); + uint32_t Update = MachOObjectFile::getVersionMinUpdate(VMC, true); if (Update != 0) - Version += "." + utostr(MachOObjectFile::getVersionMinUpdate(VMC, - false)); - W.printString("Version", Version); - SmallString<32> SDK; - if (VMC.sdk == 0) - SDK = "n/a"; - else { - SDK = utostr(MachOObjectFile::getVersionMinMajor(VMC, true)) + "." + - utostr(MachOObjectFile::getVersionMinMinor(VMC, true)); - uint32_t Update = MachOObjectFile::getVersionMinUpdate(VMC, true); - if (Update != 0) - SDK += "." + utostr(MachOObjectFile::getVersionMinUpdate(VMC, - true)); - } - W.printString("SDK", SDK); + SDK += "." + utostr(MachOObjectFile::getVersionMinUpdate(VMC, true)); } + W.printString("SDK", SDK); } } |