diff options
author | Zachary Turner <zturner@google.com> | 2017-05-31 01:08:36 +0000 |
---|---|---|
committer | Zachary Turner <zturner@google.com> | 2017-05-31 01:08:36 +0000 |
commit | 876e5a30fc9ffdca033f8256631679a74b01c210 (patch) | |
tree | bcd18f4e4cc1702176b2260b16dde58f068d3974 /include | |
parent | 45da6478a89d77bd306cb4b49131749ff8ea97b7 (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.h | 46 |
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) |