1f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot//===- CodeViewYAMLSymbols.h - CodeView YAMLIO Symbol implementation ------===//
2f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot//
3f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot//                     The LLVM Compiler Infrastructure
4f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot//
5f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot// This file is distributed under the University of Illinois Open Source
6f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot// License. See LICENSE.TXT for details.
7f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot//
8f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot//===----------------------------------------------------------------------===//
9f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot//
10f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot// This file defines classes for handling the YAML representation of CodeView
11f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot// Debug Info.
12f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot//
13f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot//===----------------------------------------------------------------------===//
14f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot
15f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot#ifndef LLVM_OBJECTYAML_CODEVIEWYAMLSYMBOLS_H
16f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot#define LLVM_OBJECTYAML_CODEVIEWYAMLSYMBOLS_H
17f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot
18f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot#include "llvm/DebugInfo/CodeView/CodeView.h"
19f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot#include "llvm/DebugInfo/CodeView/SymbolRecord.h"
20f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot#include "llvm/Support/Error.h"
21f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot#include "llvm/Support/YAMLTraits.h"
22f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot#include <memory>
23f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot
24f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotnamespace llvm {
25f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotnamespace CodeViewYAML {
26f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot
27f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotnamespace detail {
28f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot
29f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotstruct SymbolRecordBase;
30f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot
31f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot} // end namespace detail
32f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot
33f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotstruct SymbolRecord {
34f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot  std::shared_ptr<detail::SymbolRecordBase> Symbol;
35f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot
36f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot  codeview::CVSymbol
37f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot  toCodeViewSymbol(BumpPtrAllocator &Allocator,
38f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot                   codeview::CodeViewContainer Container) const;
39f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot
40f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot  static Expected<SymbolRecord> fromCodeViewSymbol(codeview::CVSymbol Symbol);
41f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot};
42f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot
43f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot} // end namespace CodeViewYAML
44f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot} // end namespace llvm
45f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot
46f3014761c955345d6e05491608e73228d014afbandroid-build-team RobotLLVM_YAML_DECLARE_MAPPING_TRAITS(CodeViewYAML::SymbolRecord)
47f3014761c955345d6e05491608e73228d014afbandroid-build-team RobotLLVM_YAML_IS_SEQUENCE_VECTOR(CodeViewYAML::SymbolRecord)
48f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot
49f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot#endif // LLVM_OBJECTYAML_CODEVIEWYAMLSYMBOLS_H
50