summaryrefslogtreecommitdiffstats
path: root/llvm/tools
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/tools')
-rw-r--r--llvm/tools/yaml2obj/CMakeLists.txt1
-rw-r--r--llvm/tools/yaml2obj/yaml2minidump.cpp18
-rw-r--r--llvm/tools/yaml2obj/yaml2obj.cpp2
-rw-r--r--llvm/tools/yaml2obj/yaml2obj.h5
4 files changed, 26 insertions, 0 deletions
diff --git a/llvm/tools/yaml2obj/CMakeLists.txt b/llvm/tools/yaml2obj/CMakeLists.txt
index adeac2331a6..1c61fb737d9 100644
--- a/llvm/tools/yaml2obj/CMakeLists.txt
+++ b/llvm/tools/yaml2obj/CMakeLists.txt
@@ -11,5 +11,6 @@ add_llvm_tool(yaml2obj
yaml2coff.cpp
yaml2elf.cpp
yaml2macho.cpp
+ yaml2minidump.cpp
yaml2wasm.cpp
)
diff --git a/llvm/tools/yaml2obj/yaml2minidump.cpp b/llvm/tools/yaml2obj/yaml2minidump.cpp
new file mode 100644
index 00000000000..a9a29475d85
--- /dev/null
+++ b/llvm/tools/yaml2obj/yaml2minidump.cpp
@@ -0,0 +1,18 @@
+//===- yaml2minidump.cpp - Convert a YAML file to a minidump file ---------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "yaml2obj.h"
+#include "llvm/ObjectYAML/MinidumpYAML.h"
+#include "llvm/Support/raw_ostream.h"
+
+using namespace llvm;
+
+int yaml2minidump(MinidumpYAML::Object &Doc, raw_ostream &Out) {
+ writeAsBinary(Doc, Out);
+ return 0;
+}
diff --git a/llvm/tools/yaml2obj/yaml2obj.cpp b/llvm/tools/yaml2obj/yaml2obj.cpp
index d96f7a68c0d..58e69fd5a5b 100644
--- a/llvm/tools/yaml2obj/yaml2obj.cpp
+++ b/llvm/tools/yaml2obj/yaml2obj.cpp
@@ -56,6 +56,8 @@ static int convertYAML(yaml::Input &YIn, raw_ostream &Out) {
return yaml2coff(*Doc.Coff, Out);
if (Doc.MachO || Doc.FatMachO)
return yaml2macho(Doc, Out);
+ if (Doc.Minidump)
+ return yaml2minidump(*Doc.Minidump, Out);
if (Doc.Wasm)
return yaml2wasm(*Doc.Wasm, Out);
error("yaml2obj: Unknown document type!");
diff --git a/llvm/tools/yaml2obj/yaml2obj.h b/llvm/tools/yaml2obj/yaml2obj.h
index 40ed9e7782d..60c298771d8 100644
--- a/llvm/tools/yaml2obj/yaml2obj.h
+++ b/llvm/tools/yaml2obj/yaml2obj.h
@@ -22,6 +22,10 @@ namespace ELFYAML {
struct Object;
}
+namespace MinidumpYAML {
+struct Object;
+}
+
namespace WasmYAML {
struct Object;
}
@@ -35,6 +39,7 @@ struct YamlObjectFile;
int yaml2coff(llvm::COFFYAML::Object &Doc, llvm::raw_ostream &Out);
int yaml2elf(llvm::ELFYAML::Object &Doc, llvm::raw_ostream &Out);
int yaml2macho(llvm::yaml::YamlObjectFile &Doc, llvm::raw_ostream &Out);
+int yaml2minidump(llvm::MinidumpYAML::Object &Doc, llvm::raw_ostream &Out);
int yaml2wasm(llvm::WasmYAML::Object &Doc, llvm::raw_ostream &Out);
#endif
OpenPOWER on IntegriCloud