aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/formal/SMTChecker.h
diff options
context:
space:
mode:
authorLeonardo Alt <leo@ethereum.org>2018-12-21 01:11:20 +0800
committerLeonardo Alt <leo@ethereum.org>2019-01-21 19:58:40 +0800
commit7f8ceaadab0c265674b591aa50cfeb8910628b9f (patch)
tree2deda16f70a2a8805b9fba5b67698058db07905b /libsolidity/formal/SMTChecker.h
parentf8e9aed839dce87cebb3e27f20ee8dbe4b782a84 (diff)
downloaddexon-solidity-7f8ceaadab0c265674b591aa50cfeb8910628b9f.tar.gz
dexon-solidity-7f8ceaadab0c265674b591aa50cfeb8910628b9f.tar.zst
dexon-solidity-7f8ceaadab0c265674b591aa50cfeb8910628b9f.zip
[SMTChecker] Clear state knowledge after external function calls
Diffstat (limited to 'libsolidity/formal/SMTChecker.h')
-rw-r--r--libsolidity/formal/SMTChecker.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/libsolidity/formal/SMTChecker.h b/libsolidity/formal/SMTChecker.h
index caa83764..a85933c8 100644
--- a/libsolidity/formal/SMTChecker.h
+++ b/libsolidity/formal/SMTChecker.h
@@ -147,8 +147,11 @@ private:
void initializeLocalVariables(FunctionDefinition const& _function);
void initializeFunctionCallParameters(FunctionDefinition const& _function, std::vector<smt::Expression> const& _callArgs);
+ void resetVariable(VariableDeclaration const& _variable);
void resetStateVariables();
+ void resetStorageReferences();
void resetVariables(std::vector<VariableDeclaration const*> _variables);
+ void resetVariables(std::function<bool(VariableDeclaration const&)> const& _filter);
/// Given two different branches and the touched variables,
/// merge the touched variables into after-branch ite variables
/// using the branch condition as guard.