[Lldb-commits] [lldb] a64bfd8 - [lldb] Fix Disasembler build error on 32-bit systems
David Spickett via lldb-commits
lldb-commits at lists.llvm.org
Tue Jul 15 02:55:05 PDT 2025
Author: David Spickett
Date: 2025-07-15T09:54:58Z
New Revision: a64bfd8a5186bc5b967878689509db81b9d1922c
URL: https://github.com/llvm/llvm-project/commit/a64bfd8a5186bc5b967878689509db81b9d1922c
DIFF: https://github.com/llvm/llvm-project/commit/a64bfd8a5186bc5b967878689509db81b9d1922c.diff
LOG: [lldb] Fix Disasembler build error on 32-bit systems
After changes in https://github.com/llvm/llvm-project/pull/145793.
/home/david.spickett/llvm-project/lldb/source/Plugins/Disassembler/LLVMC/DisassemblerLLVMC.cpp:1360:49: error: non-const lvalue reference to type 'uint64_t' (aka 'unsigned long long') cannot bind to a value of unrelated type 'size_t' (aka 'unsigned int')
1360 | status = m_disasm_up->getInstruction(mc_inst, size, data, pc, llvm::nulls());
| ^~~~
/home/david.spickett/llvm-project/llvm/include/llvm/MC/MCDisassembler/MCDisassembler.h:135:64: note: passing argument to parameter 'Size' here
135 | virtual DecodeStatus getInstruction(MCInst &Instr, uint64_t &Size,
| ^
1 error generated.
The type used in the LLVM method we call is uin64_t so use that instead.
It's overkill for what it is, but that's a separate issue if anyone cares.
Also removed the unused form of GetMCInst.
Added:
Modified:
lldb/source/Plugins/Disassembler/LLVMC/DisassemblerLLVMC.cpp
Removed:
################################################################################
diff --git a/lldb/source/Plugins/Disassembler/LLVMC/DisassemblerLLVMC.cpp b/lldb/source/Plugins/Disassembler/LLVMC/DisassemblerLLVMC.cpp
index 564b787594f71..d92e16366f0ac 100644
--- a/lldb/source/Plugins/Disassembler/LLVMC/DisassemblerLLVMC.cpp
+++ b/lldb/source/Plugins/Disassembler/LLVMC/DisassemblerLLVMC.cpp
@@ -59,10 +59,8 @@ class DisassemblerLLVMC::MCDisasmInstance {
~MCDisasmInstance() = default;
- uint64_t GetMCInst(const uint8_t *opcode_data, size_t opcode_data_len,
- lldb::addr_t pc, llvm::MCInst &mc_inst) const;
bool GetMCInst(const uint8_t *opcode_data, size_t opcode_data_len,
- lldb::addr_t pc, llvm::MCInst &mc_inst, size_t &size) const;
+ lldb::addr_t pc, llvm::MCInst &mc_inst, uint64_t &size) const;
void PrintMCInst(llvm::MCInst &mc_inst, lldb::addr_t pc,
std::string &inst_string, std::string &comments_string);
void SetStyle(bool use_hex_immed, HexImmediateStyle hex_style);
@@ -531,7 +529,7 @@ class InstructionLLVMC : public lldb_private::Instruction {
const addr_t pc = m_address.GetFileAddress();
llvm::MCInst inst;
- size_t inst_size = 0;
+ uint64_t inst_size = 0;
m_is_valid = mc_disasm_ptr->GetMCInst(opcode_data, opcode_data_len,
pc, inst, inst_size);
m_opcode.Clear();
@@ -614,7 +612,7 @@ class InstructionLLVMC : public lldb_private::Instruction {
const uint8_t *opcode_data = data.GetDataStart();
const size_t opcode_data_len = data.GetByteSize();
llvm::MCInst inst;
- size_t inst_size = 0;
+ uint64_t inst_size = 0;
bool valid = mc_disasm_ptr->GetMCInst(opcode_data, opcode_data_len, pc,
inst, inst_size);
@@ -1217,7 +1215,7 @@ class InstructionLLVMC : public lldb_private::Instruction {
const uint8_t *opcode_data = data.GetDataStart();
const size_t opcode_data_len = data.GetByteSize();
llvm::MCInst inst;
- size_t inst_size = 0;
+ uint64_t inst_size = 0;
const bool valid = mc_disasm_ptr->GetMCInst(opcode_data, opcode_data_len,
pc, inst, inst_size);
if (!valid)
@@ -1353,7 +1351,7 @@ bool DisassemblerLLVMC::MCDisasmInstance::GetMCInst(const uint8_t *opcode_data,
size_t opcode_data_len,
lldb::addr_t pc,
llvm::MCInst &mc_inst,
- size_t &size) const {
+ uint64_t &size) const {
llvm::ArrayRef<uint8_t> data(opcode_data, opcode_data_len);
llvm::MCDisassembler::DecodeStatus status;
More information about the lldb-commits
mailing list