diff --git a/llvm/tools/llvm-ifs/llvm-ifs.cpp b/llvm/tools/llvm-ifs/llvm-ifs.cpp --- a/llvm/tools/llvm-ifs/llvm-ifs.cpp +++ b/llvm/tools/llvm-ifs/llvm-ifs.cpp @@ -236,15 +236,32 @@ } }(T); + auto PlatformKindOrError = + [](const llvm::Triple &T) -> llvm::Expected { + if (T.isiOS()) + return llvm::MachO::PlatformKind::iOS; + if (T.isMacOSX()) + return llvm::MachO::PlatformKind::macOS; + if (T.isTvOS()) + return llvm::MachO::PlatformKind::tvOS; + if (T.isWatchOS()) + return llvm::MachO::PlatformKind::watchOS; + return createStringError(errc::not_supported, "Invalid Platform."); + }(T); + if (!ArchOrError) return -1; + if (!PlatformKindOrError) + return -1; + Architecture Arch = ArchOrError.get(); + PlatformKind Plat = PlatformKindOrError.get(); InterfaceFile File; File.setFileType(FileType::TBD_V3); File.setArchitectures(Arch); - File.setPlatform(PlatformKind::macOS); + File.setPlatform(Plat); for (const auto &Symbol : Symbols) { auto Name = Symbol.Name;