[Lldb-commits] [lldb] Make ValueObject::Cast work for casts from smaller to larger structs in the cases where this currently can work. (PR #84588)
via lldb-commits
lldb-commits at lists.llvm.org
Fri Mar 8 16:41:28 PST 2024
github-actions[bot] wrote:
<!--LLVM CODE FORMAT COMMENT: {clang-format}-->
:warning: C/C++ code formatter, clang-format found issues in your code. :warning:
<details>
<summary>
You can test this locally with the following command:
</summary>
``````````bash
git-clang-format --diff 9405d5af65853ac548cce2656497195010db1d86 e85c0108f3508537b4d2d9fe9120dd07ebd00361 -- lldb/source/Core/ValueObject.cpp lldb/test/API/python_api/value/main.c
``````````
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/lldb/source/Core/ValueObject.cpp b/lldb/source/Core/ValueObject.cpp
index f39bd07a25..81c1f7fc20 100644
--- a/lldb/source/Core/ValueObject.cpp
+++ b/lldb/source/Core/ValueObject.cpp
@@ -2745,7 +2745,7 @@ ValueObjectSP ValueObject::DoCast(const CompilerType &compiler_type) {
ValueObjectSP ValueObject::Cast(const CompilerType &compiler_type) {
// Only allow casts if the original type is equal or larger than the cast
// type, unless we know this is a load address. Getting the size wrong for
- // a host side storage could leak lldb memory, so we absolutely want to
+ // a host side storage could leak lldb memory, so we absolutely want to
// prevent that. We may not always get the right value, for instance if we
// have an expression result value that's copied into a storage location in
// the target may not have copied enough memory. I'm not trying to fix that
@@ -2763,10 +2763,10 @@ ValueObjectSP ValueObject::Cast(const CompilerType &compiler_type) {
ExecutionContextScope *exe_scope
= ExecutionContext(GetExecutionContextRef())
.GetBestExecutionContextScope();
- if (compiler_type.GetByteSize(exe_scope)
- <= GetCompilerType().GetByteSize(exe_scope)
- || m_value.GetValueType() == Value::ValueType::LoadAddress)
- return DoCast(compiler_type);
+ if (compiler_type.GetByteSize(exe_scope) <=
+ GetCompilerType().GetByteSize(exe_scope) ||
+ m_value.GetValueType() == Value::ValueType::LoadAddress)
+ return DoCast(compiler_type);
error.SetErrorString("Can only cast to a type that is equal to or smaller "
"than the orignal type.");
diff --git a/lldb/test/API/python_api/value/main.c b/lldb/test/API/python_api/value/main.c
index cdb2aa2f61..78a7de6210 100644
--- a/lldb/test/API/python_api/value/main.c
+++ b/lldb/test/API/python_api/value/main.c
@@ -22,7 +22,7 @@ const char *weekdays[5] = { "Monday",
const char **g_table[2] = { days_of_week, weekdays };
typedef int MyInt;
-
+
struct MyStruct
{
int a;
@@ -36,15 +36,14 @@ struct MyBiggerStruct
int c;
};
-struct Container
-{
+struct Container {
int discriminator;
union Data {
struct MyStruct small;
struct MyBiggerStruct big;
} data;
};
-
+
int main (int argc, char const *argv[])
{
uint32_t uinthex = 0xE0A35F10;
``````````
</details>
https://github.com/llvm/llvm-project/pull/84588
More information about the lldb-commits
mailing list