ARM: support .watchos_version_min and .tvos_version_min.
[oota-llvm.git] / tools / llvm-readobj / MachODumper.cpp
index ab77fdcf136613f3c2df6822aa631f7561902fc5..58d2c9fca47ddca1b66f431a920339ce1c5e4ff7 100644 (file)
@@ -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);
   }
 }