summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/tools/llvm-readobj/cxx-cli-aux.test2
-rw-r--r--tools/llvm-readobj/COFFDumper.cpp11
2 files changed, 11 insertions, 2 deletions
diff --git a/test/tools/llvm-readobj/cxx-cli-aux.test b/test/tools/llvm-readobj/cxx-cli-aux.test
index eac3041b1c..90e73c033a 100644
--- a/test/tools/llvm-readobj/cxx-cli-aux.test
+++ b/test/tools/llvm-readobj/cxx-cli-aux.test
@@ -36,7 +36,7 @@ CHECK-NEXT: AuxSymbolCount: 1
CHECK-NEXT: AuxCLRToken {
CHECK-NEXT: AuxType: 1
CHECK-NEXT: Reserved: 0
-CHECK-NEXT: SymbolTableIndex: 19
+CHECK-NEXT: SymbolTableIndex: ?PerAppDomain@@$$Q3HA (19)
CHECK-NEXT: Unused: (00 00 00 00 00 00 00 00 00 00 00 00)
CHECK-NEXT: }
CHECK-NEXT: }
diff --git a/tools/llvm-readobj/COFFDumper.cpp b/tools/llvm-readobj/COFFDumper.cpp
index 28ac3cb416..34115f481a 100644
--- a/tools/llvm-readobj/COFFDumper.cpp
+++ b/tools/llvm-readobj/COFFDumper.cpp
@@ -1058,10 +1058,19 @@ void COFFDumper::printSymbol(symbol_iterator SymI) {
if (error(getSymbolAuxData(Obj, Symbol + I, Aux)))
break;
+ const coff_symbol *ReferredSym;
+ StringRef ReferredName;
+ error_code EC;
+ if ((EC = Obj->getSymbol(Aux->SymbolTableIndex, ReferredSym)) ||
+ (EC = Obj->getSymbolName(ReferredSym, ReferredName))) {
+ ReferredName = "";
+ error(EC);
+ }
+
DictScope AS(W, "AuxCLRToken");
W.printNumber("AuxType", Aux->AuxType);
W.printNumber("Reserved", Aux->Reserved);
- W.printNumber("SymbolTableIndex", Aux->SymbolTableIndex);
+ W.printNumber("SymbolTableIndex", ReferredName, Aux->SymbolTableIndex);
W.printBinary("Unused", Aux->Unused);
} else {