aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/llvm12/include/llvm/ObjectYAML/yaml2obj.h
blob: e8e27c5b3b63a8f9f41f362cfbba6a47f602b71e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#pragma once 
 
#ifdef __GNUC__ 
#pragma GCC diagnostic push 
#pragma GCC diagnostic ignored "-Wunused-parameter" 
#endif 
 
//===--- yaml2obj.h - -------------------------------------------*- C++ -*-===// 
// 
// 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 
// 
//===----------------------------------------------------------------------===// 
/// \file 
/// Common declarations for yaml2obj 
//===----------------------------------------------------------------------===// 
#ifndef LLVM_TOOLS_YAML2OBJ_YAML2OBJ_H 
#define LLVM_TOOLS_YAML2OBJ_YAML2OBJ_H 
 
#include "llvm/ADT/STLExtras.h" 
#include <memory> 
 
namespace llvm { 
class raw_ostream; 
template <typename T> class SmallVectorImpl; 
class StringRef; 
class Twine; 
 
namespace object { 
class ObjectFile; 
} 
 
namespace COFFYAML { 
struct Object; 
} 
 
namespace ELFYAML { 
struct Object; 
} 
 
namespace MinidumpYAML { 
struct Object; 
} 
 
namespace WasmYAML { 
struct Object; 
} 
 
namespace ArchYAML {
struct Archive;
}

namespace yaml { 
class Input; 
struct YamlObjectFile; 
 
using ErrorHandler = llvm::function_ref<void(const Twine &Msg)>; 
 
bool yaml2archive(ArchYAML::Archive &Doc, raw_ostream &Out, ErrorHandler EH);
bool yaml2coff(COFFYAML::Object &Doc, raw_ostream &Out, ErrorHandler EH); 
bool yaml2elf(ELFYAML::Object &Doc, raw_ostream &Out, ErrorHandler EH, 
              uint64_t MaxSize); 
bool yaml2macho(YamlObjectFile &Doc, raw_ostream &Out, ErrorHandler EH); 
bool yaml2minidump(MinidumpYAML::Object &Doc, raw_ostream &Out, 
                   ErrorHandler EH); 
bool yaml2wasm(WasmYAML::Object &Doc, raw_ostream &Out, ErrorHandler EH); 
 
bool convertYAML(Input &YIn, raw_ostream &Out, ErrorHandler ErrHandler, 
                 unsigned DocNum = 1, uint64_t MaxSize = UINT64_MAX); 
 
/// Convenience function for tests. 
std::unique_ptr<object::ObjectFile> 
yaml2ObjectFile(SmallVectorImpl<char> &Storage, StringRef Yaml, 
                ErrorHandler ErrHandler); 
 
} // namespace yaml 
} // namespace llvm 
 
#endif 
 
#ifdef __GNUC__ 
#pragma GCC diagnostic pop 
#endif