From d8030b6c75f638b92c1908d8b427299c2d0abe92 Mon Sep 17 00:00:00 2001 From: Rusty Wagner Date: Wed, 16 Dec 2020 21:45:31 -0500 Subject: Add API/UI to control dead store elimination of specific variables --- python/function.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'python') diff --git a/python/function.py b/python/function.py index e98f7191..d986fcca 100644 --- a/python/function.py +++ b/python/function.py @@ -35,7 +35,7 @@ from binaryninja import types from binaryninja.enums import (AnalysisSkipReason, FunctionGraphType, BranchType, SymbolType, InstructionTextTokenType, HighlightStandardColor, HighlightColorStyle, RegisterValueType, ImplicitRegisterExtend, DisassemblyOption, IntegerDisplayType, InstructionTextTokenContext, VariableSourceType, - FunctionAnalysisSkipOverride, MediumLevelILOperation) + FunctionAnalysisSkipOverride, MediumLevelILOperation, DeadStoreElimination) # 2-3 compatibility from binaryninja import range @@ -926,6 +926,16 @@ class Variable(object): v.storage = self._storage return v + @property + def dead_store_elimination(self): + if self._function is not None and self._identifier is not None: + return DeadStoreElimination(core.BNGetFunctionVariableDeadStoreElimination(self._function.handle, self.to_BNVariable())) + return None + + @dead_store_elimination.setter + def dead_store_elimination(self, value): + core.BNSetFunctionVariableDeadStoreElimination(self._function.handle, self.to_BNVariable(), value) + @classmethod def from_identifier(self, func, identifier, name=None, var_type=None): var = core.BNFromVariableIdentifier(identifier) -- cgit v1.3.1