diff options
author | Fangrui Song <i@maskray.me> | 2023-07-11 08:38:02 -0700 |
---|---|---|
committer | Fangrui Song <i@maskray.me> | 2023-07-11 08:38:02 -0700 |
commit | 3edef604cfbcdf9a658213de1340e4b6b63eb9d3 (patch) | |
tree | c02724bc1587d33d9f99716ac2d9c832664df8da /llvm/tools/llvm-objdump/llvm-objdump.h | |
parent | 7322f2d5ed547f7281af2d79a229f6620b1708ac (diff) | |
download | llvm-3edef604cfbcdf9a658213de1340e4b6b63eb9d3.zip llvm-3edef604cfbcdf9a658213de1340e4b6b63eb9d3.tar.gz llvm-3edef604cfbcdf9a658213de1340e4b6b63eb9d3.tar.bz2 |
[llvm-objdump] Change errors to warnings for symbol section name dumping
Port D69671 (llvm-readobj) to llvm-objdump. Add a class llvm::objdump::Dumper
and move some free functions into Dumper so that they can call
reportUniqueWarning.
Warnings seems preferable in these cases as the issue is localized and we can
continue dumping other information.
Differential Revision: https://reviews.llvm.org/D154754
Diffstat (limited to 'llvm/tools/llvm-objdump/llvm-objdump.h')
-rw-r--r-- | llvm/tools/llvm-objdump/llvm-objdump.h | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/llvm/tools/llvm-objdump/llvm-objdump.h b/llvm/tools/llvm-objdump/llvm-objdump.h index 7acd892..ffc1361 100644 --- a/llvm/tools/llvm-objdump/llvm-objdump.h +++ b/llvm/tools/llvm-objdump/llvm-objdump.h @@ -65,6 +65,26 @@ extern bool UnwindInfo; extern StringSet<> FoundSectionSet; +class Dumper { + const object::ObjectFile &O; + StringSet<> Warnings; + +public: + Dumper(const object::ObjectFile &O) : O(O) {} + + void reportUniqueWarning(Error Err); + void reportUniqueWarning(const Twine &Msg); + + void printSymbolTable(StringRef ArchiveName, + StringRef ArchitectureName = StringRef(), + bool DumpDynamic = false); + void printSymbol(const object::SymbolRef &Symbol, + ArrayRef<object::VersionEntry> SymbolVersions, + StringRef FileName, StringRef ArchiveName, + StringRef ArchitectureName, bool DumpDynamic); + void printRelocations(); +}; + // Various helper functions. /// Creates a SectionFilter with a standard predicate that conditionally skips @@ -77,17 +97,9 @@ object::SectionFilter ToolSectionFilter(const llvm::object::ObjectFile &O, uint64_t *Idx = nullptr); bool isRelocAddressLess(object::RelocationRef A, object::RelocationRef B); -void printRelocations(const object::ObjectFile *O); void printDynamicRelocations(const object::ObjectFile *O); void printSectionHeaders(object::ObjectFile &O); void printSectionContents(const object::ObjectFile *O); -void printSymbolTable(const object::ObjectFile &O, StringRef ArchiveName, - StringRef ArchitectureName = StringRef(), - bool DumpDynamic = false); -void printSymbol(const object::ObjectFile &O, const object::SymbolRef &Symbol, - ArrayRef<object::VersionEntry> SymbolVersions, - StringRef FileName, StringRef ArchiveName, - StringRef ArchitectureName, bool DumpDynamic); [[noreturn]] void reportError(StringRef File, const Twine &Message); [[noreturn]] void reportError(Error E, StringRef FileName, StringRef ArchiveName = "", |