Author: Dave Lee Date: 2025-09-10T09:53:54-07:00 New Revision: b574e63f9fd1adb52786f9dc03ec6f479229e1a7
URL: https://github.com/llvm/llvm-project/commit/b574e63f9fd1adb52786f9dc03ec6f479229e1a7 DIFF: https://github.com/llvm/llvm-project/commit/b574e63f9fd1adb52786f9dc03ec6f479229e1a7.diff LOG: [lldb] Pass execution context to CompilerType::GetByteSize - in CommandObjectMemoryRead (NFC) (#157750) Some type systems require an execution context be available when working with types (ex: Swift). This fixes `memory read --type` to support such type systems, by passing in an execution context to `GetByteSize()`, instead of passing null. rdar://158968545 Added: Modified: lldb/source/Commands/CommandObjectMemory.cpp Removed: ################################################################################ diff --git a/lldb/source/Commands/CommandObjectMemory.cpp b/lldb/source/Commands/CommandObjectMemory.cpp index af1ff3e845109..5786e757ef7ea 100644 --- a/lldb/source/Commands/CommandObjectMemory.cpp +++ b/lldb/source/Commands/CommandObjectMemory.cpp @@ -365,6 +365,8 @@ class CommandObjectMemoryRead : public CommandObjectParsed { return; } + ExecutionContextScope *exe_scope = m_exe_ctx.GetBestExecutionContextScope(); + CompilerType compiler_type; Status error; @@ -520,7 +522,7 @@ class CommandObjectMemoryRead : public CommandObjectParsed { --pointer_count; } - auto size_or_err = compiler_type.GetByteSize(nullptr); + auto size_or_err = compiler_type.GetByteSize(exe_scope); if (!size_or_err) { result.AppendErrorWithFormat( "unable to get the byte size of the type '%s'\n%s", @@ -640,7 +642,7 @@ class CommandObjectMemoryRead : public CommandObjectParsed { if (!m_format_options.GetFormatValue().OptionWasSet()) m_format_options.GetFormatValue().SetCurrentValue(eFormatDefault); - auto size_or_err = compiler_type.GetByteSize(nullptr); + auto size_or_err = compiler_type.GetByteSize(exe_scope); if (!size_or_err) { result.AppendError(llvm::toString(size_or_err.takeError())); return; @@ -800,7 +802,6 @@ class CommandObjectMemoryRead : public CommandObjectParsed { output_stream_p = &result.GetOutputStream(); } - ExecutionContextScope *exe_scope = m_exe_ctx.GetBestExecutionContextScope(); if (compiler_type.GetOpaqueQualType()) { for (uint32_t i = 0; i < item_count; ++i) { addr_t item_addr = addr + (i * item_byte_size); _______________________________________________ lldb-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
