llvm-readobj: Print referred symbol name for CLR token definition
authorNico Rieck <nico.rieck@gmail.com>
Mon, 17 Mar 2014 01:46:52 +0000 (01:46 +0000)
committerNico Rieck <nico.rieck@gmail.com>
Mon, 17 Mar 2014 01:46:52 +0000 (01:46 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@204024 91177308-0d34-0410-b5e6-96231b3b80d8

test/tools/llvm-readobj/cxx-cli-aux.test
tools/llvm-readobj/COFFDumper.cpp

index eac3041b1cceffc624bc53e6b54f11b22b868634..90e73c033a86b6268c4aa73e022e097e26afd39b 100644 (file)
@@ -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:   }
index 28ac3cb4164d158f4064e5d4f5e09700cd1867fe..34115f481ae512390a7ad33d03da632bdc89fc48 100644 (file)
@@ -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 {