summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorZachary Turner <zturner@google.com>2017-05-31 01:08:36 +0000
committerZachary Turner <zturner@google.com>2017-05-31 01:08:36 +0000
commit876e5a30fc9ffdca033f8256631679a74b01c210 (patch)
treebcd18f4e4cc1702176b2260b16dde58f068d3974 /include
parent45da6478a89d77bd306cb4b49131749ff8ea97b7 (diff)
[ObjectYAML] Clean up the CodeView headers a bit.
CodeViewYAML.h attempts to hide the details of many of the CodeView yaml structures and types, but at the same time it exposes the mapping traits for them to external users of the header. This patch just hides these in the implementation files so that the interface is kept as simple as possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@304263 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/llvm/ObjectYAML/CodeViewYAML.h46
1 files changed, 12 insertions, 34 deletions
diff --git a/include/llvm/ObjectYAML/CodeViewYAML.h b/include/llvm/ObjectYAML/CodeViewYAML.h
index 86b572ab86d..16a58ba1060 100644
--- a/include/llvm/ObjectYAML/CodeViewYAML.h
+++ b/include/llvm/ObjectYAML/CodeViewYAML.h
@@ -16,6 +16,7 @@
#define LLVM_OBJECTYAML_CODEVIEWYAML_H
#include "llvm/DebugInfo/CodeView/CodeView.h"
+#include "llvm/DebugInfo/CodeView/DebugSubsection.h"
#include "llvm/DebugInfo/CodeView/SymbolDeserializer.h"
#include "llvm/DebugInfo/CodeView/SymbolRecord.h"
#include "llvm/DebugInfo/CodeView/SymbolSerializer.h"
@@ -27,6 +28,12 @@
namespace llvm {
namespace CodeViewYAML {
+namespace detail {
+struct C13FragmentBase;
+struct LeafRecordBase;
+struct MemberRecordBase;
+struct SymbolRecordBase;
+}
namespace detail {
struct MemberRecordBase;
@@ -106,46 +113,17 @@ struct SymbolRecord {
codeview::CVSymbol toCodeViewSymbol(BumpPtrAllocator &Allocator) const;
static Expected<SymbolRecord> fromCodeViewSymbol(codeview::CVSymbol Symbol);
};
+
+struct C13DebugSection {
+ std::vector<detail::C13FragmentBase> Fragments;
+};
} // namespace CodeViewYAML
} // namespace llvm
-LLVM_YAML_DECLARE_SCALAR_TRAITS(codeview::TypeIndex, false)
-LLVM_YAML_DECLARE_SCALAR_TRAITS(CodeViewYAML::HexFormattedString, false)
-LLVM_YAML_DECLARE_SCALAR_TRAITS(APSInt, false)
-
-LLVM_YAML_DECLARE_MAPPING_TRAITS(CodeViewYAML::SourceLineEntry)
-LLVM_YAML_DECLARE_MAPPING_TRAITS(CodeViewYAML::SourceColumnEntry)
-LLVM_YAML_DECLARE_MAPPING_TRAITS(CodeViewYAML::SourceFileChecksumEntry)
-LLVM_YAML_DECLARE_MAPPING_TRAITS(CodeViewYAML::SourceLineInfo)
-LLVM_YAML_DECLARE_MAPPING_TRAITS(CodeViewYAML::SourceLineBlock)
-LLVM_YAML_DECLARE_MAPPING_TRAITS(CodeViewYAML::SourceFileInfo)
-LLVM_YAML_DECLARE_MAPPING_TRAITS(CodeViewYAML::InlineeInfo)
-LLVM_YAML_DECLARE_MAPPING_TRAITS(CodeViewYAML::InlineeSite)
-
LLVM_YAML_DECLARE_MAPPING_TRAITS(CodeViewYAML::LeafRecord)
LLVM_YAML_DECLARE_MAPPING_TRAITS(CodeViewYAML::MemberRecord)
LLVM_YAML_DECLARE_MAPPING_TRAITS(CodeViewYAML::SymbolRecord)
-
-LLVM_YAML_DECLARE_ENUM_TRAITS(codeview::TypeLeafKind)
-LLVM_YAML_DECLARE_ENUM_TRAITS(codeview::SymbolKind)
-LLVM_YAML_DECLARE_ENUM_TRAITS(codeview::PointerToMemberRepresentation)
-LLVM_YAML_DECLARE_ENUM_TRAITS(codeview::VFTableSlotKind)
-LLVM_YAML_DECLARE_ENUM_TRAITS(codeview::CallingConvention)
-LLVM_YAML_DECLARE_ENUM_TRAITS(codeview::PointerKind)
-LLVM_YAML_DECLARE_ENUM_TRAITS(codeview::PointerMode)
-LLVM_YAML_DECLARE_ENUM_TRAITS(codeview::HfaKind)
-LLVM_YAML_DECLARE_ENUM_TRAITS(codeview::MemberAccess)
-LLVM_YAML_DECLARE_ENUM_TRAITS(codeview::MethodKind)
-LLVM_YAML_DECLARE_ENUM_TRAITS(codeview::WindowsRTClassKind)
-LLVM_YAML_DECLARE_ENUM_TRAITS(codeview::LabelType)
-LLVM_YAML_DECLARE_ENUM_TRAITS(codeview::FileChecksumKind)
-
-LLVM_YAML_DECLARE_BITSET_TRAITS(codeview::PointerOptions)
-LLVM_YAML_DECLARE_BITSET_TRAITS(codeview::LineFlags)
-LLVM_YAML_DECLARE_BITSET_TRAITS(codeview::ModifierOptions)
-LLVM_YAML_DECLARE_BITSET_TRAITS(codeview::FunctionOptions)
-LLVM_YAML_DECLARE_BITSET_TRAITS(codeview::ClassOptions)
-LLVM_YAML_DECLARE_BITSET_TRAITS(codeview::MethodOptions)
+LLVM_YAML_DECLARE_MAPPING_TRAITS(CodeViewYAML::SourceFileInfo)
LLVM_YAML_IS_SEQUENCE_VECTOR(CodeViewYAML::LeafRecord)
LLVM_YAML_IS_SEQUENCE_VECTOR(CodeViewYAML::MemberRecord)