https://github.com/kamleshbhalui updated https://github.com/llvm/llvm-project/pull/81451
>From 51347e2de532261cfe980b299baeceb7747b7d48 Mon Sep 17 00:00:00 2001 From: Kamlesh Kumar <[email protected]> Date: Mon, 12 Feb 2024 13:30:32 +0530 Subject: [PATCH 1/2] [lldb] Store proper integer bitwidth in Scalar Type Storing Larger bitwidth causes problem when byteswapping. --- lldb/source/Expression/DWARFExpression.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/lldb/source/Expression/DWARFExpression.cpp b/lldb/source/Expression/DWARFExpression.cpp index fe4928d4f43a43..1546612be34ac7 100644 --- a/lldb/source/Expression/DWARFExpression.cpp +++ b/lldb/source/Expression/DWARFExpression.cpp @@ -857,10 +857,18 @@ static Scalar DerefSizeExtractDataHelper(uint8_t *addr_bytes, DataExtractor addr_data(addr_bytes, size_addr_bytes, byte_order, size); lldb::offset_t addr_data_offset = 0; - if (size <= 8) - return addr_data.GetMaxU64(&addr_data_offset, size); - else - return addr_data.GetAddress(&addr_data_offset); + switch (size) { + case 1: + return addr_data.GetU8(&addr_data_offset); + case 2: + return addr_data.GetU16(&addr_data_offset); + case 4: + return addr_data.GetU32(&addr_data_offset); + case 8: + return addr_data.GetU64(&addr_data_offset); + default: + return addr_data.GetAddress(&addr_data_offset); + } } bool DWARFExpression::Evaluate( >From a04e9ea70fd29cd5fb0599c0e2f106c17656da57 Mon Sep 17 00:00:00 2001 From: Kamlesh Kumar <[email protected]> Date: Mon, 12 Feb 2024 14:21:44 +0530 Subject: [PATCH 2/2] clang-formatted --- lldb/source/Expression/DWARFExpression.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lldb/source/Expression/DWARFExpression.cpp b/lldb/source/Expression/DWARFExpression.cpp index 1546612be34ac7..6839e05bb115bd 100644 --- a/lldb/source/Expression/DWARFExpression.cpp +++ b/lldb/source/Expression/DWARFExpression.cpp @@ -867,7 +867,7 @@ static Scalar DerefSizeExtractDataHelper(uint8_t *addr_bytes, case 8: return addr_data.GetU64(&addr_data_offset); default: - return addr_data.GetAddress(&addr_data_offset); + return addr_data.GetAddress(&addr_data_offset); } } _______________________________________________ lldb-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
