[llvm] [llvm-readobj][COFF] Implement --coff-pseudoreloc in llvm-readobj to dump runtime pseudo-relocation records (PR #151816)

James Henderson via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 11 01:15:03 PDT 2025


================
@@ -2180,31 +2207,45 @@ void COFFDumper::printCOFFPseudoReloc() {
     DenseMap<uint32_t, StringRef> ImportedSymbols;
   };
   CachingImportedSymbolLookup ImportedSymbols(Obj);
+  llvm::stable_sort(RVASymbolMap, [](const auto &x, const auto &y) {
+    return x.RVA < y.RVA;
+  });
+  RVASymbolMap.erase(llvm::unique(RVASymbolMap,
+                                  [](const auto &x, const auto &y) {
+                                    return x.RVA == y.RVA;
+                                  }),
+                     RVASymbolMap.end());
 
-  ListScope D(W, "PseudoReloc");
   for (const auto &Reloc : RelocRecords) {
     DictScope Entry(W, "Entry");
 
     W.printHex("Symbol", Reloc.Symbol);
-    if (const auto *Sym = ImportedSymbols.find(Reloc.Symbol))
-      W.printString("SymbolName", *Sym);
+    if (Expected<StringRef> SymOrErr = ImportedSymbols.find(Reloc.Symbol))
----------------
jh7370 wrote:

Same comment as above re. braces.

https://github.com/llvm/llvm-project/pull/151816


More information about the llvm-commits mailing list