================
@@ -3015,11 +3017,12 @@ llvm::Expected<lldb::ValueObjectSP>
ValueObject::CastDerivedToBaseType(
lldb::TargetSP target = GetTargetSP();
// The `value` can be a pointer, but GetChildAtIndex works for pointers too.
- lldb::ValueObjectSP inner_value;
+ lldb::ValueObjectSP inner_value = GetSP();
for (const uint32_t i : base_type_indices)
// Force static value, otherwise we can end up with the "real" type.
- inner_value = GetChildAtIndex(i, /*can_create_synthetic*/ false);
----------------
cmtice wrote:
The difference is that now in each loop iteration the rhs is
'inner_loop->GetChildAtIndex...', which will be different each iteration
through the loop; before it was just 'GetChildAtIndex', which did not change on
each iteration.
re false->true: The original lldb-eval code on which that was based used
'false', but it was also making the call through the SB API interface
(SBValues, SBTypes, etc). I found that the cast test cases passed with
lldb-eval when this value was false, but failed in my translated, migrated
version. Setting this to true allows those failing test cases to pass.
I don't have any easy way to add those test cases to this PR because they all
use 'frame variable' (using my DIL implementation) for doing the casts...But I
do have them, and I am running (and passing) them.
https://github.com/llvm/llvm-project/pull/87197
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits