summaryrefslogtreecommitdiff
path: root/binaryninjacore.h
diff options
context:
space:
mode:
authorRusty Wagner <rusty.wagner@gmail.com>2020-12-16 21:45:31 -0500
committerRusty Wagner <rusty.wagner@gmail.com>2020-12-18 00:16:20 -0500
commitd8030b6c75f638b92c1908d8b427299c2d0abe92 (patch)
tree35b663e0eb031dbdb4f7018e4e0bee7cef42ec70 /binaryninjacore.h
parent70ce5764abacc1a7ea518f5ccef92421a1d6d04e (diff)
Add API/UI to control dead store elimination of specific variables
Diffstat (limited to 'binaryninjacore.h')
-rw-r--r--binaryninjacore.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/binaryninjacore.h b/binaryninjacore.h
index 4eab7a44..72f661a9 100644
--- a/binaryninjacore.h
+++ b/binaryninjacore.h
@@ -2441,6 +2441,13 @@ extern "C"
void* ctx;
};
+ enum BNDeadStoreElimination
+ {
+ DefaultDeadStoreElimination,
+ PreventDeadStoreElimination,
+ AllowDeadStoreElimination
+ };
+
BINARYNINJACOREAPI char* BNAllocString(const char* contents);
BINARYNINJACOREAPI void BNFreeString(char* str);
BINARYNINJACOREAPI char** BNAllocStringList(const char** contents, size_t size);
@@ -3275,6 +3282,10 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI char* BNGetVariableName(BNFunction* func, const BNVariable* var);
BINARYNINJACOREAPI uint64_t BNToVariableIdentifier(const BNVariable* var);
BINARYNINJACOREAPI BNVariable BNFromVariableIdentifier(uint64_t id);
+ BINARYNINJACOREAPI BNDeadStoreElimination BNGetFunctionVariableDeadStoreElimination(BNFunction* func,
+ const BNVariable* var);
+ BINARYNINJACOREAPI void BNSetFunctionVariableDeadStoreElimination(BNFunction* func,
+ const BNVariable* var, BNDeadStoreElimination mode);
BINARYNINJACOREAPI BNReferenceSource* BNGetFunctionCallSites(BNFunction* func, size_t* count);
BINARYNINJACOREAPI uint64_t* BNGetCallees(BNBinaryView* view, BNReferenceSource* callSite, size_t* count);