diff options
| author | KyleMiles <krm504@nyu.edu> | 2021-08-23 10:43:07 -0400 |
|---|---|---|
| committer | KyleMiles <krm504@nyu.edu> | 2021-10-21 18:49:41 -0400 |
| commit | 35b56762efa96a490ef9a5066cbe1eb3e704a68b (patch) | |
| tree | ba8a4ec86bd1ddff857b8f25d04248c7f2ae81f2 /python | |
| parent | 5bb20da936a412f69c9e32ebed5c7ad9f7e4abaa (diff) | |
Add HighLevelILFunction::IsVarLiveAt and HighLevelILFunction::IsSSAVarLiveAt
Diffstat (limited to 'python')
| -rw-r--r-- | python/highlevelil.py | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/python/highlevelil.py b/python/highlevelil.py index 881b3477..a71dc69c 100644 --- a/python/highlevelil.py +++ b/python/highlevelil.py @@ -2504,6 +2504,26 @@ class HighLevelILFunction: var_data = ssa_var.var.to_BNVariable() return core.BNIsHighLevelILSSAVarLive(self.handle, var_data, ssa_var.version) + def is_var_live_at(self, var: 'variable.Variable', instr: int) -> bool: + """ + ``is_var_live_at`` determines if ``var`` is live at a given point in the function + """ + var_data = core.BNVariable() + var_data.type = var.source_type + var_data.index = var.index + var_data.storage = var.storage + return core.BNIsHighLevelILVarLiveAt(self.handle, var_data, instr) + + def is_ssa_var_live_at(self, ssa_var: 'mediumlevelil.SSAVariable', instr: int) -> bool: + """ + ``is_ssa_var_live_at`` determines if ``ssa_var`` is live at a given point in the function; counts phi's as uses + """ + var_data = core.BNVariable() + var_data.type = ssa_var.var.source_type + var_data.index = ssa_var.var.index + var_data.storage = ssa_var.var.storage + return core.BNIsHighLevelILSSAVarLiveAt(self.handle, var_data, ssa_var.version, instr) + def get_var_definitions(self, var:'variable.Variable') -> List[HighLevelILInstruction]: count = ctypes.c_ulonglong() var_data = var.to_BNVariable() |
