diff options
author | Dmitri Gribenko <gribozavr@gmail.com> | 2019-08-06 13:39:50 +0000 |
---|---|---|
committer | Dmitri Gribenko <gribozavr@gmail.com> | 2019-08-06 13:39:50 +0000 |
commit | fc21bb661f5177eaec4d756b904167be4f0e7dfb (patch) | |
tree | 6fc478223b13b8cbcfce97675b4acf2bdfa2f393 /llvm/lib/ObjectYAML/yaml2obj.cpp | |
parent | bd1721e534ca34b7f50f2d6ab5f979b3a35ff19c (diff) | |
download | bcm5719-llvm-fc21bb661f5177eaec4d756b904167be4f0e7dfb.tar.gz bcm5719-llvm-fc21bb661f5177eaec4d756b904167be4f0e7dfb.zip |
Revert "[yaml2obj] Move core yaml2obj code into lib and include for use in unit tests"
This reverts commit r368021, it broke tests.
llvm-svn: 368035
Diffstat (limited to 'llvm/lib/ObjectYAML/yaml2obj.cpp')
-rw-r--r-- | llvm/lib/ObjectYAML/yaml2obj.cpp | 68 |
1 files changed, 0 insertions, 68 deletions
diff --git a/llvm/lib/ObjectYAML/yaml2obj.cpp b/llvm/lib/ObjectYAML/yaml2obj.cpp deleted file mode 100644 index f9bcba68c84..00000000000 --- a/llvm/lib/ObjectYAML/yaml2obj.cpp +++ /dev/null @@ -1,68 +0,0 @@ -//===-- yaml2obj.cpp ------------------------------------------------------===// -// -// 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 "llvm/ObjectYAML/yaml2obj.h" -#include "llvm/ADT/StringExtras.h" -#include "llvm/Object/ObjectFile.h" -#include "llvm/ObjectYAML/ObjectYAML.h" -#include "llvm/Support/Errc.h" -#include "llvm/Support/YAMLTraits.h" - -namespace llvm { -namespace yaml { - -Error convertYAML(yaml::Input &YIn, raw_ostream &Out, unsigned DocNum) { - // TODO: make yaml2* functions return Error instead of int. - auto IntToErr = [](int Ret) -> Error { - if (Ret) - return createStringError(errc::invalid_argument, "yaml2obj failed"); - return Error::success(); - }; - - unsigned CurDocNum = 0; - do { - if (++CurDocNum == DocNum) { - yaml::YamlObjectFile Doc; - YIn >> Doc; - if (std::error_code EC = YIn.error()) - return createStringError(EC, "Failed to parse YAML input!"); - if (Doc.Elf) - return IntToErr(yaml2elf(*Doc.Elf, Out)); - if (Doc.Coff) - return IntToErr(yaml2coff(*Doc.Coff, Out)); - if (Doc.MachO || Doc.FatMachO) - return IntToErr(yaml2macho(Doc, Out)); - if (Doc.Minidump) - return IntToErr(yaml2minidump(*Doc.Minidump, Out)); - if (Doc.Wasm) - return IntToErr(yaml2wasm(*Doc.Wasm, Out)); - return createStringError(errc::invalid_argument, - "Unknown document type!"); - } - } while (YIn.nextDocument()); - - return createStringError(errc::invalid_argument, - "Cannot find the %u%s document", DocNum, - getOrdinalSuffix(DocNum).data()); -} - -Expected<std::unique_ptr<object::ObjectFile>> -yaml2ObjectFile(SmallVectorImpl<char> &Storage, StringRef Yaml) { - Storage.clear(); - raw_svector_ostream OS(Storage); - - yaml::Input YIn(Yaml); - if (Error E = convertYAML(YIn, OS)) - return std::move(E); - - return object::ObjectFile::createObjectFile( - MemoryBufferRef(OS.str(), "YamlObject")); -} - -} // namespace yaml -} // namespace llvm |