summaryrefslogtreecommitdiff
path: root/python/highlevelil.py
diff options
context:
space:
mode:
authorPeter LaFosse <peter@vector35.com>2023-05-26 11:05:21 -0400
committerPeter LaFosse <peter@vector35.com>2023-05-26 11:05:25 -0400
commitf8ba38091323f7e3402bd73bb1e53ac358696dd0 (patch)
tree18fcdd0a12541971100061eaabe7d30646316118 /python/highlevelil.py
parent559b977c4e6989d62bdb0340e202a82334017ee4 (diff)
Fix bugs in hlil.ssa_form.vars_written returning empty when it shouldn't
Diffstat (limited to 'python/highlevelil.py')
-rw-r--r--python/highlevelil.py8
1 files changed, 4 insertions, 4 deletions
diff --git a/python/highlevelil.py b/python/highlevelil.py
index 9ad6cb2f..676d1508 100644
--- a/python/highlevelil.py
+++ b/python/highlevelil.py
@@ -1285,7 +1285,7 @@ class HighLevelILAssign(HighLevelILInstruction):
@property
def vars_written(self) -> VariablesList:
- if isinstance(self.dest, (HighLevelILSplit, HighLevelILVar)):
+ if isinstance(self.dest, (HighLevelILSplit, HighLevelILVar, HighLevelILVarSsa)):
return [*self.dest.vars, *self.src.vars_written]
elif isinstance(self.dest, HighLevelILStructField):
return [*self.dest.vars, *self.src.vars_written]
@@ -1314,7 +1314,7 @@ class HighLevelILAssignUnpack(HighLevelILInstruction):
def vars_written(self) -> VariablesList:
result = []
for i in self.dest:
- if isinstance(i, HighLevelILVar):
+ if isinstance(i, (HighLevelILVar, HighLevelILVarSsa)):
result.append(i.var)
else:
result.extend(i.vars_written)
@@ -1603,9 +1603,9 @@ class HighLevelILDerefFieldSsa(HighLevelILInstruction, SSA):
class HighLevelILAddressOf(HighLevelILUnaryBase):
@property
def vars_address_taken(self) -> VariablesList:
- if isinstance(self.src, HighLevelILVar):
+ if isinstance(self.src, (HighLevelILVar, HighLevelILVarSsa)):
return [self.src.var]
- elif isinstance(self.src, HighLevelILStructField) and isinstance(self.src.src, HighLevelILVar):
+ elif isinstance(self.src, HighLevelILStructField) and isinstance(self.src.src, (HighLevelILVar, HighLevelILVarSsa)):
return [self.src.src.var]
return [*self.src.vars_address_taken]