diff options
author | Fangrui Song <i@maskray.me> | 2022-10-04 10:00:21 -0700 |
---|---|---|
committer | Fangrui Song <i@maskray.me> | 2022-10-04 10:00:21 -0700 |
commit | ad92a3db2e43f1fcac65a1a7949dd24c855d7002 (patch) | |
tree | aaa3b7169ea3387054f678db0d4eba354419d034 /llvm/tools/llvm-objdump/llvm-objdump.cpp | |
parent | 83839700c32996c58ddebc0c74e3dc4970e005bc (diff) | |
download | llvm-ad92a3db2e43f1fcac65a1a7949dd24c855d7002.zip llvm-ad92a3db2e43f1fcac65a1a7949dd24c855d7002.tar.gz llvm-ad92a3db2e43f1fcac65a1a7949dd24c855d7002.tar.bz2 |
[llvm-objdump] --no-leading-addr: hide inline relocation offsets
It seems to make sense to omit offsets when --no-leading-addr is specified. The output is now closer
to objdump -dr --no-addresses (non-wide output).
Reviewed By: nickdesaulniers
Differential Revision: https://reviews.llvm.org/D135039
Diffstat (limited to 'llvm/tools/llvm-objdump/llvm-objdump.cpp')
-rw-r--r-- | llvm/tools/llvm-objdump/llvm-objdump.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/llvm/tools/llvm-objdump/llvm-objdump.cpp b/llvm/tools/llvm-objdump/llvm-objdump.cpp index 8daeb4e..a06e644 100644 --- a/llvm/tools/llvm-objdump/llvm-objdump.cpp +++ b/llvm/tools/llvm-objdump/llvm-objdump.cpp @@ -465,13 +465,16 @@ static bool hasMappingSymbols(const ObjectFile &Obj) { static void printRelocation(formatted_raw_ostream &OS, StringRef FileName, const RelocationRef &Rel, uint64_t Address, bool Is64Bits) { - StringRef Fmt = Is64Bits ? "\t\t%016" PRIx64 ": " : "\t\t\t%08" PRIx64 ": "; + StringRef Fmt = Is64Bits ? "%016" PRIx64 ": " : "%08" PRIx64 ": "; SmallString<16> Name; SmallString<32> Val; Rel.getTypeName(Name); if (Error E = getRelocationValueString(Rel, Val)) reportError(std::move(E), FileName); - OS << format(Fmt.data(), Address) << Name << "\t" << Val; + OS << (Is64Bits || !LeadingAddr ? "\t\t" : "\t\t\t"); + if (LeadingAddr) + OS << format(Fmt.data(), Address); + OS << Name << "\t" << Val; } static void AlignToInstStartColumn(size_t Start, const MCSubtargetInfo &STI, |