File tree Expand file tree Collapse file tree 1 file changed +13
-3
lines changed Expand file tree Collapse file tree 1 file changed +13
-3
lines changed Original file line number Diff line number Diff line change @@ -156,9 +156,19 @@ bool ValueObjectChild::UpdateValue() {
156
156
m_value.SetValueType (Value::ValueType::FileAddress);
157
157
} break ;
158
158
case eAddressTypeLoad:
159
- m_value.SetValueType (is_instance_ptr_base
160
- ? Value::ValueType::Scalar
161
- : Value::ValueType::LoadAddress);
159
+ // BEGIN SWIFT MOD
160
+ // We need to detect when we cross TypeSystem boundaries,
161
+ // e.g. when we try to print Obj-C fields of a Swift object.
162
+ if (parent->GetCompilerType ().GetTypeSystem ()->SupportsLanguage (
163
+ lldb::eLanguageTypeSwift) &&
164
+ GetCompilerType ().GetTypeSystem ()->SupportsLanguage (
165
+ lldb::eLanguageTypeSwift))
166
+ m_value.SetValueType (is_instance_ptr_base
167
+ ? Value::ValueType::Scalar
168
+ : Value::ValueType::LoadAddress);
169
+ else
170
+ m_value.SetValueType (Value::ValueType::LoadAddress);
171
+ // END SWIFT MOD
162
172
break ;
163
173
case eAddressTypeHost:
164
174
m_value.SetValueType (Value::ValueType::HostAddress);
You can’t perform that action at this time.
0 commit comments