[llvm] r304263 - [ObjectYAML] Clean up the CodeView headers a bit.

Zachary Turner via llvm-commits llvm-commits at lists.llvm.org
Tue May 30 18:08:36 PDT 2017


Author: zturner
Date: Tue May 30 20:08:36 2017
New Revision: 304263

URL: http://llvm.org/viewvc/llvm-project?rev=304263&view=rev
Log:
[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.

Modified:
    llvm/trunk/include/llvm/ObjectYAML/CodeViewYAML.h
    llvm/trunk/lib/ObjectYAML/CodeViewYAML.cpp
    llvm/trunk/tools/llvm-pdbdump/PdbYaml.cpp

Modified: llvm/trunk/include/llvm/ObjectYAML/CodeViewYAML.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ObjectYAML/CodeViewYAML.h?rev=304263&r1=304262&r2=304263&view=diff
==============================================================================
--- llvm/trunk/include/llvm/ObjectYAML/CodeViewYAML.h (original)
+++ llvm/trunk/include/llvm/ObjectYAML/CodeViewYAML.h Tue May 30 20:08:36 2017
@@ -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)

Modified: llvm/trunk/lib/ObjectYAML/CodeViewYAML.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/ObjectYAML/CodeViewYAML.cpp?rev=304263&r1=304262&r2=304263&view=diff
==============================================================================
--- llvm/trunk/lib/ObjectYAML/CodeViewYAML.cpp (original)
+++ llvm/trunk/lib/ObjectYAML/CodeViewYAML.cpp Tue May 30 20:08:36 2017
@@ -34,10 +34,42 @@ LLVM_YAML_IS_SEQUENCE_VECTOR(InlineeSite
 LLVM_YAML_IS_SEQUENCE_VECTOR(InlineeInfo)
 LLVM_YAML_IS_SEQUENCE_VECTOR(OneMethodRecord)
 LLVM_YAML_IS_SEQUENCE_VECTOR(StringRef)
-LLVM_YAML_IS_SEQUENCE_VECTOR(uint32_t)
 LLVM_YAML_IS_SEQUENCE_VECTOR(VFTableSlotKind)
 LLVM_YAML_IS_FLOW_SEQUENCE_VECTOR(TypeIndex)
 
+LLVM_YAML_DECLARE_SCALAR_TRAITS(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::InlineeInfo)
+LLVM_YAML_DECLARE_MAPPING_TRAITS(CodeViewYAML::InlineeSite)
+
+LLVM_YAML_DECLARE_ENUM_TRAITS(TypeLeafKind)
+LLVM_YAML_DECLARE_ENUM_TRAITS(SymbolKind)
+LLVM_YAML_DECLARE_ENUM_TRAITS(PointerToMemberRepresentation)
+LLVM_YAML_DECLARE_ENUM_TRAITS(VFTableSlotKind)
+LLVM_YAML_DECLARE_ENUM_TRAITS(CallingConvention)
+LLVM_YAML_DECLARE_ENUM_TRAITS(PointerKind)
+LLVM_YAML_DECLARE_ENUM_TRAITS(PointerMode)
+LLVM_YAML_DECLARE_ENUM_TRAITS(HfaKind)
+LLVM_YAML_DECLARE_ENUM_TRAITS(MemberAccess)
+LLVM_YAML_DECLARE_ENUM_TRAITS(MethodKind)
+LLVM_YAML_DECLARE_ENUM_TRAITS(WindowsRTClassKind)
+LLVM_YAML_DECLARE_ENUM_TRAITS(LabelType)
+LLVM_YAML_DECLARE_ENUM_TRAITS(FileChecksumKind)
+
+LLVM_YAML_DECLARE_BITSET_TRAITS(PointerOptions)
+LLVM_YAML_DECLARE_BITSET_TRAITS(LineFlags)
+LLVM_YAML_DECLARE_BITSET_TRAITS(ModifierOptions)
+LLVM_YAML_DECLARE_BITSET_TRAITS(FunctionOptions)
+LLVM_YAML_DECLARE_BITSET_TRAITS(ClassOptions)
+LLVM_YAML_DECLARE_BITSET_TRAITS(MethodOptions)
+
 LLVM_YAML_DECLARE_MAPPING_TRAITS(llvm::codeview::OneMethodRecord)
 LLVM_YAML_DECLARE_MAPPING_TRAITS(llvm::codeview::MemberPointerInfo)
 

Modified: llvm/trunk/tools/llvm-pdbdump/PdbYaml.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-pdbdump/PdbYaml.cpp?rev=304263&r1=304262&r2=304263&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-pdbdump/PdbYaml.cpp (original)
+++ llvm/trunk/tools/llvm-pdbdump/PdbYaml.cpp Tue May 30 20:08:36 2017
@@ -13,7 +13,6 @@
 #include "llvm/DebugInfo/CodeView/CVSymbolVisitor.h"
 #include "llvm/DebugInfo/CodeView/CVTypeVisitor.h"
 #include "llvm/DebugInfo/CodeView/SymbolDeserializer.h"
-#include "llvm/DebugInfo/CodeView/SymbolSerializer.h"
 #include "llvm/DebugInfo/CodeView/SymbolVisitorCallbackPipeline.h"
 #include "llvm/DebugInfo/CodeView/TypeSerializer.h"
 #include "llvm/DebugInfo/CodeView/TypeVisitorCallbackPipeline.h"




More information about the llvm-commits mailing list