diff --git a/test/tools/llvm-readobj/cxx-cli-aux.test b/test/tools/llvm-readobj/cxx-cli-aux.test index eac3041b1cc..90e73c033a8 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 28ac3cb4164..34115f481ae 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 {