diff options
Diffstat (limited to 'contrib/llvm-project/llvm/tools/llvm-objdump/ELFDump.cpp')
| -rw-r--r-- | contrib/llvm-project/llvm/tools/llvm-objdump/ELFDump.cpp | 14 | 
1 files changed, 10 insertions, 4 deletions
diff --git a/contrib/llvm-project/llvm/tools/llvm-objdump/ELFDump.cpp b/contrib/llvm-project/llvm/tools/llvm-objdump/ELFDump.cpp index 9c4d67d0f1bd..abfe08346bbd 100644 --- a/contrib/llvm-project/llvm/tools/llvm-objdump/ELFDump.cpp +++ b/contrib/llvm-project/llvm/tools/llvm-objdump/ELFDump.cpp @@ -105,9 +105,12 @@ static Error getRelocationValueString(const ELFObjectFile<ELFT> *Obj,    } else {      Fmt << "*ABS*";    } - -  if (Addend != 0) -    Fmt << (Addend < 0 ? "" : "+") << Addend; +  if (Addend != 0) { +      Fmt << (Addend < 0 +          ? "-" +          : "+") << format("0x%" PRIx64, +                          (Addend < 0 ? -(uint64_t)Addend : (uint64_t)Addend)); +  }    Fmt.flush();    Result.append(FmtBuf.begin(), FmtBuf.end());    return Error::success(); @@ -178,7 +181,7 @@ void printDynamicSection(const ELFFile<ELFT> *Elf, StringRef Filename) {          outs() << (Data + Dyn.d_un.d_val) << "\n";          continue;        } -      warn(toString(StrTabOrErr.takeError())); +      reportWarning(toString(StrTabOrErr.takeError()), Filename);        consumeError(StrTabOrErr.takeError());      }      outs() << format(Fmt, (uint64_t)Dyn.d_un.d_val); @@ -201,6 +204,9 @@ template <class ELFT> void printProgramHeaders(const ELFFile<ELFT> *o) {      case ELF::PT_GNU_RELRO:        outs() << "   RELRO ";        break; +    case ELF::PT_GNU_PROPERTY: +      outs() << "   PROPERTY "; +      break;      case ELF::PT_GNU_STACK:        outs() << "   STACK ";        break;  | 
