diff options
Diffstat (limited to 'llvm/tools/llvm-pdbdump/LLVMOutputStyle.cpp')
| -rw-r--r-- | llvm/tools/llvm-pdbdump/LLVMOutputStyle.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/llvm/tools/llvm-pdbdump/LLVMOutputStyle.cpp b/llvm/tools/llvm-pdbdump/LLVMOutputStyle.cpp index 31c342cd0f5..cd5bf8a095d 100644 --- a/llvm/tools/llvm-pdbdump/LLVMOutputStyle.cpp +++ b/llvm/tools/llvm-pdbdump/LLVMOutputStyle.cpp @@ -16,6 +16,8 @@ #include "llvm/DebugInfo/CodeView/CVTypeVisitor.h" #include "llvm/DebugInfo/CodeView/DebugChecksumsSubsection.h" +#include "llvm/DebugInfo/CodeView/DebugCrossExSubsection.h" +#include "llvm/DebugInfo/CodeView/DebugCrossImpSubsection.h" #include "llvm/DebugInfo/CodeView/DebugInlineeLinesSubsection.h" #include "llvm/DebugInfo/CodeView/DebugLinesSubsection.h" #include "llvm/DebugInfo/CodeView/DebugSubsectionVisitor.h" @@ -174,6 +176,32 @@ public: return Error::success(); } + Error handleCrossModuleExports() override { + for (const auto &M : CrossExports) { + DictScope D(P, "CrossModuleExports"); + for (const auto &E : M) { + P.printHex("Local", E.Local); + P.printHex("Global", E.Global); + } + } + return Error::success(); + } + + Error handleCrossModuleImports() override { + for (const auto &M : CrossImports) { + DictScope D(P, "CrossModuleImports"); + for (const auto &ImportGroup : M) { + auto Name = + getNameFromStringTable(ImportGroup.Header->ModuleNameOffset); + if (!Name) + return Name.takeError(); + P.printString("Module", *Name); + P.printHexList("Imports", ImportGroup.Imports); + } + } + return Error::success(); + } + private: Error dumpTypeRecord(StringRef Label, TypeIndex Index) { CompactTypeDumpVisitor CTDV(IPI, Index, &P); |

