diff --git a/llvm/include/llvm/MC/MCDisassembler/MCDisassembler.h b/llvm/include/llvm/MC/MCDisassembler/MCDisassembler.h --- a/llvm/include/llvm/MC/MCDisassembler/MCDisassembler.h +++ b/llvm/include/llvm/MC/MCDisassembler/MCDisassembler.h @@ -135,7 +135,7 @@ /// Base implementation returns None. So all targets by default ignore to /// treat symbols separately. /// - /// \param Name - The name of the symbol. + /// \param Symbol - The symbol. /// \param Size - The number of bytes consumed. /// \param Address - The address, in the memory space of region, of the first /// byte of the symbol. @@ -150,10 +150,9 @@ /// done by buffering the output if needed. /// - None if the target doesn't want to handle the symbol /// separately. Value of Size is ignored in this case. - virtual Optional onSymbolStart(StringRef Name, uint64_t &Size, - ArrayRef Bytes, - uint64_t Address, - raw_ostream &CStream) const; + virtual Optional + onSymbolStart(SymbolInfoTy &Symbol, uint64_t &Size, ArrayRef Bytes, + uint64_t Address, raw_ostream &CStream) const; // TODO: // Implement similar hooks that can be used at other points during // disassembly. Something along the following lines: diff --git a/llvm/lib/MC/MCDisassembler/MCDisassembler.cpp b/llvm/lib/MC/MCDisassembler/MCDisassembler.cpp --- a/llvm/lib/MC/MCDisassembler/MCDisassembler.cpp +++ b/llvm/lib/MC/MCDisassembler/MCDisassembler.cpp @@ -17,7 +17,7 @@ MCDisassembler::~MCDisassembler() = default; Optional -MCDisassembler::onSymbolStart(StringRef Name, uint64_t &Size, +MCDisassembler::onSymbolStart(SymbolInfoTy &Symbol, uint64_t &Size, ArrayRef Bytes, uint64_t Address, raw_ostream &CStream) const { return None; diff --git a/llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp b/llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp --- a/llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp +++ b/llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp @@ -46,7 +46,7 @@ DecodeStatus getInstruction(MCInst &Instr, uint64_t &Size, ArrayRef Bytes, uint64_t Address, raw_ostream &CStream) const override; - Optional onSymbolStart(StringRef Name, uint64_t &Size, + Optional onSymbolStart(SymbolInfoTy &Symbol, uint64_t &Size, ArrayRef Bytes, uint64_t Address, raw_ostream &CStream) const override; @@ -122,8 +122,8 @@ } Optional WebAssemblyDisassembler::onSymbolStart( - StringRef Name, uint64_t &Size, ArrayRef Bytes, uint64_t Address, - raw_ostream &CStream) const { + SymbolInfoTy &Symbol, uint64_t &Size, ArrayRef Bytes, + uint64_t Address, raw_ostream &CStream) const { Size = 0; if (Address == 0) { // Start of a code section: we're parsing only the function count. diff --git a/llvm/tools/llvm-objdump/llvm-objdump.cpp b/llvm/tools/llvm-objdump/llvm-objdump.cpp --- a/llvm/tools/llvm-objdump/llvm-objdump.cpp +++ b/llvm/tools/llvm-objdump/llvm-objdump.cpp @@ -1429,7 +1429,7 @@ continue; } - auto Status = DisAsm->onSymbolStart(SymbolName, Size, + auto Status = DisAsm->onSymbolStart(Symbols[SI], Size, Bytes.slice(Start, End - Start), SectionAddr + Start, CommentStream); // To have round trippable disassembly, we fall back to decoding the