aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorJacob Young <jacobly0@users.noreply.github.com>2023-05-29 00:10:36 -0400
committerAndrew Kelley <andrew@ziglang.org>2023-06-10 20:47:56 -0700
commit32692569656d9a178abb24f8fb7893395700cb62 (patch)
treec2f10d2ed2d1d5e0e6c1cd2d532c6d76d401a466 /tools
parent3064d2aa7b9a8ea836cb70884b0640fe902ecc29 (diff)
downloadzig-32692569656d9a178abb24f8fb7893395700cb62.tar.gz
zig-32692569656d9a178abb24f8fb7893395700cb62.zip
behavior: fix more compiler crashes
Diffstat (limited to 'tools')
-rw-r--r--tools/lldb_pretty_printers.py26
1 files changed, 13 insertions, 13 deletions
diff --git a/tools/lldb_pretty_printers.py b/tools/lldb_pretty_printers.py
index 0bba97dcaa..3d57adee70 100644
--- a/tools/lldb_pretty_printers.py
+++ b/tools/lldb_pretty_printers.py
@@ -455,21 +455,21 @@ class InternPool_Index_SynthProvider:
elif encoding_field.name == 'trailing':
trailing_data = lldb.SBData()
for trailing_field in encoding_field.type.fields:
- if trailing_field.type.IsAggregateType():
- trailing_data.Append(extra.GetChildAtIndex(extra_index).address_of.data)
- len = dynamic_values['trailing.%s.len' % trailing_field.name].unsigned
- trailing_data.Append(lldb.SBData.CreateDataFromInt(len, trailing_data.GetAddressByteSize()))
- extra_index += len
- else:
- pass
+ trailing_data.Append(extra.GetChildAtIndex(extra_index).address_of.data)
+ trailing_len = dynamic_values['trailing.%s.len' % trailing_field.name].unsigned
+ trailing_data.Append(lldb.SBData.CreateDataFromInt(trailing_len, trailing_data.GetAddressByteSize()))
+ extra_index += trailing_len
self.trailing = self.data.CreateValueFromData('trailing', trailing_data, encoding_field.type)
else:
- path = encoding_field.type.GetPointeeType().name.removeprefix('%s::' % encoding_type.name).removeprefix('%s.' % encoding_type.name).partition('__')[0].split('.')
- if path[0] == 'data':
- dynamic_value = self.data
- for name in path[1:]:
- dynamic_value = dynamic_value.GetChildMemberWithName(name)
- dynamic_values[encoding_field.name] = dynamic_value
+ for path in encoding_field.type.GetPointeeType().name.removeprefix('%s::' % encoding_type.name).removeprefix('%s.' % encoding_type.name).partition('__')[0].split(' orelse '):
+ if path.startswith('data.'):
+ root = self.data
+ path = path[len('data'):]
+ else: return
+ dynamic_value = root.GetValueForExpressionPath(path)
+ if dynamic_value:
+ dynamic_values[encoding_field.name] = dynamic_value
+ break
except: pass
def has_children(self): return True
def num_children(self): return 2 + (self.trailing is not None)