summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-pdbdump/LLVMOutputStyle.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/tools/llvm-pdbdump/LLVMOutputStyle.cpp')
-rw-r--r--llvm/tools/llvm-pdbdump/LLVMOutputStyle.cpp28
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);
OpenPOWER on IntegriCloud