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);
}
}