aboutsummaryrefslogtreecommitdiffstats
path: root/test/libsolidity/smtCheckerTests/functions/functions_external_1.sol
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 /test/libsolidity/smtCheckerTests/functions/functions_external_1.sol
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 'test/libsolidity/smtCheckerTests/functions/functions_external_1.sol')
-rw-r--r--test/libsolidity/smtCheckerTests/functions/functions_external_1.sol21
1 files changed, 21 insertions, 0 deletions
diff --git a/test/libsolidity/smtCheckerTests/functions/functions_external_1.sol b/test/libsolidity/smtCheckerTests/functions/functions_external_1.sol
new file mode 100644
index 00000000..16482e7a
--- /dev/null
+++ b/test/libsolidity/smtCheckerTests/functions/functions_external_1.sol
@@ -0,0 +1,21 @@
+pragma experimental SMTChecker;
+
+contract D
+{
+ function g(uint x) public;
+}
+
+contract C
+{
+ uint x;
+ function f(uint y, D d) public {
+ require(x == y);
+ assert(x == y);
+ d.g(y);
+ // Storage knowledge is cleared after an external call.
+ assert(x == y);
+ }
+}
+// ----
+// Warning: (119-122): Assertion checker does not yet support the type of this variable.
+// Warning: (240-254): Assertion violation happens here