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