OSDN Git Service

[CodeView] Isolate Debug Info Fragments into standalone classes.
authorZachary Turner <zturner@google.com>
Thu, 27 Apr 2017 16:12:16 +0000 (16:12 +0000)
committerZachary Turner <zturner@google.com>
Thu, 27 Apr 2017 16:12:16 +0000 (16:12 +0000)
commit2834a6874e1e3e03d323d56a67ca4b796f5fdb08
treebef5920ea087692b5a185aebd5f513d02ecc3840
parent67e6eced9e2b4e912ae6b0ef5d038324290a8230
[CodeView] Isolate Debug Info Fragments into standalone classes.

Previously parsing of these were all grouped together into a
single master class that could parse any type of debug info
fragment.

With writing forthcoming, the complexity of each individual
fragment is enough to warrant them having their own classes so
that reading and writing of each fragment type can be grouped
together, but isolated from the code for reading and writing
other fragment types.

In doing so, I found a place where parsing code was duplicated
for the FileChecksums fragment, across llvm-readobj and the
CodeView library, and one of the implementations had a bug.
Now that the codepaths are merged, the bug is resolved.

Differential Revision: https://reviews.llvm.org/D32547

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@301557 91177308-0d34-0410-b5e6-96231b3b80d8
19 files changed:
include/llvm/DebugInfo/CodeView/Line.h
include/llvm/DebugInfo/CodeView/ModuleDebugFileChecksumFragment.h [new file with mode: 0644]
include/llvm/DebugInfo/CodeView/ModuleDebugFragment.h
include/llvm/DebugInfo/CodeView/ModuleDebugFragmentRecord.h [new file with mode: 0644]
include/llvm/DebugInfo/CodeView/ModuleDebugFragmentVisitor.h
include/llvm/DebugInfo/CodeView/ModuleDebugLineFragment.h [new file with mode: 0644]
include/llvm/DebugInfo/CodeView/ModuleDebugUnknownFragment.h [new file with mode: 0644]
include/llvm/DebugInfo/PDB/Native/ModuleDebugStream.h
lib/DebugInfo/CodeView/CMakeLists.txt
lib/DebugInfo/CodeView/ModuleDebugFileChecksumFragment.cpp [new file with mode: 0644]
lib/DebugInfo/CodeView/ModuleDebugFragment.cpp
lib/DebugInfo/CodeView/ModuleDebugFragmentRecord.cpp [new file with mode: 0644]
lib/DebugInfo/CodeView/ModuleDebugFragmentVisitor.cpp
lib/DebugInfo/CodeView/ModuleDebugLineFragment.cpp [new file with mode: 0644]
lib/DebugInfo/CodeView/ModuleDebugUnknownFragment.cpp [new file with mode: 0644]
lib/DebugInfo/PDB/Native/ModuleDebugStream.cpp
tools/llvm-pdbdump/LLVMOutputStyle.cpp
tools/llvm-pdbdump/YAMLOutputStyle.cpp
tools/llvm-readobj/COFFDumper.cpp