diff options
author | Leonardo Alt <leo@ethereum.org> | 2018-12-21 01:11:20 +0800 |
---|---|---|
committer | Leonardo Alt <leo@ethereum.org> | 2019-01-21 19:58:40 +0800 |
commit | 7f8ceaadab0c265674b591aa50cfeb8910628b9f (patch) | |
tree | 2deda16f70a2a8805b9fba5b67698058db07905b /libsolidity/formal/SMTChecker.h | |
parent | f8e9aed839dce87cebb3e27f20ee8dbe4b782a84 (diff) | |
download | dexon-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.h | 3 |
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. |