Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
14 pmbaty 1
//===--- yaml2obj.h - -------------------------------------------*- C++ -*-===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
/// \file
9
/// Common declarations for yaml2obj
10
//===----------------------------------------------------------------------===//
11
#ifndef LLVM_OBJECTYAML_YAML2OBJ_H
12
#define LLVM_OBJECTYAML_YAML2OBJ_H
13
 
14
#include "llvm/ADT/STLExtras.h"
15
#include <memory>
16
 
17
namespace llvm {
18
class raw_ostream;
19
template <typename T> class SmallVectorImpl;
20
class StringRef;
21
class Twine;
22
 
23
namespace object {
24
class ObjectFile;
25
}
26
 
27
namespace COFFYAML {
28
struct Object;
29
}
30
 
31
namespace ELFYAML {
32
struct Object;
33
}
34
 
35
namespace MinidumpYAML {
36
struct Object;
37
}
38
 
39
namespace OffloadYAML {
40
struct Binary;
41
}
42
 
43
namespace WasmYAML {
44
struct Object;
45
}
46
 
47
namespace XCOFFYAML {
48
struct Object;
49
}
50
 
51
namespace ArchYAML {
52
struct Archive;
53
}
54
 
55
namespace DXContainerYAML {
56
struct Object;
57
} // namespace DXContainerYAML
58
 
59
namespace yaml {
60
class Input;
61
struct YamlObjectFile;
62
 
63
using ErrorHandler = llvm::function_ref<void(const Twine &Msg)>;
64
 
65
bool yaml2archive(ArchYAML::Archive &Doc, raw_ostream &Out, ErrorHandler EH);
66
bool yaml2coff(COFFYAML::Object &Doc, raw_ostream &Out, ErrorHandler EH);
67
bool yaml2elf(ELFYAML::Object &Doc, raw_ostream &Out, ErrorHandler EH,
68
              uint64_t MaxSize);
69
bool yaml2macho(YamlObjectFile &Doc, raw_ostream &Out, ErrorHandler EH);
70
bool yaml2minidump(MinidumpYAML::Object &Doc, raw_ostream &Out,
71
                   ErrorHandler EH);
72
bool yaml2offload(OffloadYAML::Binary &Doc, raw_ostream &Out, ErrorHandler EH);
73
bool yaml2wasm(WasmYAML::Object &Doc, raw_ostream &Out, ErrorHandler EH);
74
bool yaml2xcoff(XCOFFYAML::Object &Doc, raw_ostream &Out, ErrorHandler EH);
75
bool yaml2dxcontainer(DXContainerYAML::Object &Doc, raw_ostream &Out,
76
                      ErrorHandler EH);
77
 
78
bool convertYAML(Input &YIn, raw_ostream &Out, ErrorHandler ErrHandler,
79
                 unsigned DocNum = 1, uint64_t MaxSize = UINT64_MAX);
80
 
81
/// Convenience function for tests.
82
std::unique_ptr<object::ObjectFile>
83
yaml2ObjectFile(SmallVectorImpl<char> &Storage, StringRef Yaml,
84
                ErrorHandler ErrHandler);
85
 
86
} // namespace yaml
87
} // namespace llvm
88
 
89
#endif