diff options
author | Shubham Sandeep Rastogi <srastogi22@apple.com> | 2022-10-06 12:15:07 -0700 |
---|---|---|
committer | Shubham Sandeep Rastogi <srastogi22@apple.com> | 2022-10-06 14:46:01 -0700 |
commit | d96ade00c3c96bd451c60e34a17e613cdd5fdc38 (patch) | |
tree | 70fcda3c263953c5f19da4af8cc0699ed4787a57 /llvm/tools/llvm-objdump/SourcePrinter.cpp | |
parent | e66ff2a284de9067e63f89f056d8075def139b0b (diff) | |
download | llvm-d96ade00c3c96bd451c60e34a17e613cdd5fdc38.zip llvm-d96ade00c3c96bd451c60e34a17e613cdd5fdc38.tar.gz llvm-d96ade00c3c96bd451c60e34a17e613cdd5fdc38.tar.bz2 |
Remove the dependency between lib/DebugInfoDWARF and MC.
This patch had to be reverted because on gcc 7.5.0 we see an error converting from std::unique_ptr<MCRegisterInfo> to Expected<std::unique_ptr<MCRegisterInfo>> as the return type for the function createRegInfo. This has now been fixed.
Diffstat (limited to 'llvm/tools/llvm-objdump/SourcePrinter.cpp')
-rw-r--r-- | llvm/tools/llvm-objdump/SourcePrinter.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/llvm/tools/llvm-objdump/SourcePrinter.cpp b/llvm/tools/llvm-objdump/SourcePrinter.cpp index c8ea6b5..67ced1c 100644 --- a/llvm/tools/llvm-objdump/SourcePrinter.cpp +++ b/llvm/tools/llvm-objdump/SourcePrinter.cpp @@ -42,7 +42,16 @@ void LiveVariable::print(raw_ostream &OS, const MCRegisterInfo &MRI) const { DataExtractor Data({LocExpr.Expr.data(), LocExpr.Expr.size()}, Unit->getContext().isLittleEndian(), 0); DWARFExpression Expression(Data, Unit->getAddressByteSize()); - Expression.printCompact(OS, MRI); + + auto GetRegName = [&MRI, &OS](uint64_t DwarfRegNum, bool IsEH) -> StringRef { + if (Optional<unsigned> LLVMRegNum = MRI.getLLVMRegNum(DwarfRegNum, IsEH)) + if (const char *RegName = MRI.getName(*LLVMRegNum)) + return StringRef(RegName); + OS << "<unknown register " << DwarfRegNum << ">"; + return {}; + }; + + Expression.printCompact(OS, GetRegName); } void LiveVariablePrinter::addVariable(DWARFDie FuncDie, DWARFDie VarDie) { |