Commit Graph

409 Commits

Author SHA1 Message Date
Leonardo Alt
92059fa848 Use Spacer option to improve performance of constant arrays 2020-04-23 10:45:02 +02:00
Leonardo Alt
cfe3686116 Fix internal error when using array slices 2020-04-22 23:20:10 +02:00
Leonardo
6d98b907ef
Merge pull request #8746 from ethereum/smt_fix_fixed_point
Fix ICE with fixed point
2020-04-22 23:18:41 +02:00
Leonardo Alt
b191139f2a Fix undefined behavior with nullptr 2020-04-22 20:49:40 +02:00
Leonardo Alt
83c9e82099 Fix ICE with fixed point 2020-04-22 19:57:00 +02:00
chriseth
41ef13129b
Merge pull request #8678 from ethereum/smt_remove_redundant_constraints
[SMTChecker] Remove redundant CHC constraints
2020-04-20 15:44:59 +02:00
hrkrshnn
4760b8589d Replaced all instances of lValueRequested to willBeWrittenTo 2020-04-20 12:33:30 +05:30
Leonardo Alt
45f22e3ff4 Add functional map and fold generic functions 2020-04-16 19:21:36 +02:00
Leonardo Alt
bca43586c6 [SMTChecker] Remove redundant CHC constraints 2020-04-15 18:11:39 +02:00
Alexander Arlt
aac7a1e434 Apply modernize-pass-by-value. 2020-04-14 10:32:13 -05:00
Leonardo Alt
4fc9920112 Use tuple sort name plus index for field name 2020-04-09 12:59:57 +02:00
Leonardo Alt
5d9dd654cf [SMTChecker] Add and use tuple sort 2020-04-08 18:26:03 +02:00
chriseth
823a119117
Merge pull request #8570 from aarlt/clang-tidy-apply-modernize-use-emplace
clang-tidy: Apply modernize-use-emplace.
2020-04-07 17:28:50 +02:00
Leonardo Alt
e3ec22124e [SMTChecker] Fix ICE in CHC internal calls 2020-04-07 01:09:03 +02:00
Leonardo Alt
05a85461fe Symbolic state 2020-04-06 12:27:53 +02:00
Leonardo Alt
2cfa44bba3 Allow constructing symbolic arrays from smt sort 2020-04-06 10:50:00 +02:00
Alexander Arlt
90bb1d8a7c Apply modernize-use-emplace. 2020-04-02 17:35:48 -05:00
Leonardo Alt
d2f65ea8b1 [SMTChecker] Add SortProvider 2020-03-26 14:55:54 +01:00
Leonardo Alt
07368c2e1e Add support to internal function calls 2020-03-11 16:29:07 +01:00
Leonardo
32ca1a5e26
Merge pull request #8311 from ethereum/smt_split_2
[SMTChecker] Change CHC encoding from explicit CFG to function forests
2020-03-03 13:16:14 +01:00
Leonardo Alt
3bee348525 Change CHC encoding to functions forest instead of explicit CFG 2020-03-03 12:12:26 +01:00
Leonardo Alt
96a230af50 [SMTChecker] Fix ICEs with tuples 2020-03-03 11:35:58 +01:00
Leonardo Alt
d31a2a8d21 CHC clears indices so that initial is 0 and current is 1 2020-02-12 11:47:58 -03:00
Leonardo Alt
34d64761d9 Extract symbolicArguments function 2020-02-12 11:47:58 -03:00
Leonardo Alt
6451a4d2a0 Move VerificationTarget and add BMCVerificationTarget 2020-02-12 11:47:58 -03:00
Leonardo Alt
ba576bc6c3 Fix new namespaces 2020-02-12 10:35:44 -03:00
Leonardo Alt
a02308cfa5 Replace void cast by maybe_unused 2020-01-09 13:41:30 +01:00
Christian Parpart
345f9928ab Library libdevcore renamed to libsolutil. 2020-01-07 15:51:50 +01:00
Christian Parpart
6b23412fae C++ namespace cleanup (except tests). 2020-01-07 15:51:50 +01:00
Leonardo Alt
f4f83690f3 Replace some shared_ptr by unique_ptr or raw pointers 2020-01-06 14:16:49 +01:00
chriseth
f6916a637e Merge remote-tracking branch 'origin/develop' into develop_060 2019-12-09 17:16:58 +01:00
Leonardo Alt
225041738e Add SMTCheckerTest for isoltest 2019-12-09 15:32:08 +01:00
chriseth
e061f1e743 Merge remote-tracking branch 'origin/develop' into HEAD 2019-12-05 16:44:26 +01:00
Leonardo Alt
7be6b54fc7 Add comment 2019-12-04 17:31:44 +01:00
Leonardo Alt
48c3a5c225 [SMTChecker] Create options to choose SMT solver in runtime 2019-12-04 17:31:44 +01:00
chriseth
42d9a8e962 Merge remote-tracking branch 'origin/develop' into develop_060 2019-12-04 17:01:44 +01:00
Leonardo Alt
67d82fc8a7 [SMTChecker] Use rlimit instead of tlimit for SMT queries 2019-12-04 11:52:18 +01:00
chriseth
2f11ac3590 Merge remote-tracking branch 'origin/develop' into develop_060 2019-12-03 21:17:15 +01:00
chriseth
96d777d7f1 Merge commit 'a7d481fb9' into develop_060 2019-12-03 20:47:30 +01:00
Leonardo Alt
b1577f5e46 [SMTChecker] Fix ICE in array of structs type 2019-12-03 01:12:30 +01:00
Leonardo
a7d481fb94
Merge pull request #7851 from ethereum/smt_fix_function_type
[SMTChecker] Fix ICE for arrays and mappings of functions.
2019-11-30 13:15:08 +01:00
Leonardo
767ce4417f
Merge pull request #7850 from ethereum/smt_fix_typetype
[SMTChecker] Fix visit to IndexAccess that has type Type
2019-11-29 18:18:26 +01:00
Leonardo Alt
5adc2a40b9 [SMTChecker] Fix ICE for arrays and mappings of functions. 2019-11-29 18:06:44 +01:00
Leonardo Alt
9eda95caf9 [SMTChecker] Fix visit to IndexAccess that has type Type 2019-11-29 17:20:50 +01:00
Leonardo Alt
c09da092d2 [SMTChecker] Fix constructors with local vars 2019-11-29 16:59:15 +01:00
Leonardo Alt
a352abe00d [SMTChecker] Add support to constructors 2019-11-28 14:43:23 +01:00
chriseth
f7fc42d8c3
Merge pull request #7826 from ethereum/develop
Merge develop into develop_060
2019-11-28 13:37:19 +01:00
Leonardo Alt
240ff30878 [SMTChecker] Do not visit the name of a modifier invocation 2019-11-27 22:34:33 +01:00
Leonardo Alt
ddc478e3e4 Add CallbackKind and use it for the SMT solver 2019-11-21 22:10:21 +00:00
Erik K
94272d44aa
Merge pull request #7745 from ethereum/develop
Merge develop into develop_060
2019-11-19 15:30:31 +01:00
Leonardo Alt
d818746e0c [SMTChecker] Fix ICE in abi.decode 2019-11-18 13:15:10 +01:00
chriseth
216e1749f4 Merge remote-tracking branch 'origin/develop' into develop_060 2019-11-14 13:42:46 +01:00
Leonardo Alt
8efacfb545 [SMTChecker] Fix ICE in string literal to fixed bytes implicit conversion 2019-11-13 22:25:18 +01:00
Leonardo Alt
e3652627fd [SMTChecker] Fix ICE in CHC when function used as argument 2019-11-13 15:11:30 +01:00
chriseth
2e5a42836c
Merge pull request #7681 from ethereum/develop
Merge develop into develop_060
2019-11-11 16:42:03 +01:00
Leonardo Alt
5dacaf57bc Fix ICE in FixedBytes IndexAccess 2019-11-08 17:29:40 +01:00
Leonardo Alt
fc945880d1 [SMTChecker] Fix override tests 2019-11-07 11:49:32 +01:00
Leonardo Alt
6b10efff8c Add CHCSmtLib2Interface 2019-11-07 11:12:11 +01:00
chriseth
21e65076b3
Merge pull request #7650 from ethereum/develop
Merge develop into develop_060
2019-11-06 21:56:55 +01:00
Leonardo Alt
10e70b8603 [SMTChecker] Support inheritance and resolve overrides 2019-11-06 11:00:06 +01:00
chriseth
4d99bf68f4
Merge pull request #7638 from ethereum/develop
Merge develop into develop_060
2019-11-05 17:33:54 +01:00
Leonardo Alt
c5e081dc8c [SMTChecker] Refactor CHC loops and add if blocks 2019-11-05 09:28:59 +01:00
chriseth
46ac16d25c Merge remote-tracking branch 'origin/develop' into develop_060 2019-11-04 19:09:11 +01:00
Daniel Kirchner
3321fc56ea Split fallback function and introduce "fallback()" and "receive()" syntax. 2019-11-04 17:17:58 +01:00
Leonardo Alt
8a42e3f87a [SMTChecker] Support assignments to m-d arrays and mappings 2019-10-28 17:27:39 +01:00
Leonardo
ca714a2d3d
Merge pull request #7485 from ethereum/develop
Merge develop into develop_060
2019-09-26 15:43:12 +02:00
Leonardo Alt
83ef34f41d [SMTChecker] Fix SMT name for function identifiers 2019-09-24 11:23:10 +02:00
Leonardo Alt
ed9674be8d [SMTChecker] Add as const function to SMTLib2Interface 2019-09-18 22:57:14 +02:00
chriseth
5b3efee93b
Merge pull request #7442 from ethereum/develop
Merge develop into develop_060
2019-09-17 12:16:27 +02:00
Leonardo Alt
e1c238e25f [SMTChecker] Add loop support 2019-09-13 12:40:53 +02:00
Daniel Kirchner
4782c800ec Initial introduction of array slices with partial implementation for dynamic calldata arrays. 2019-09-13 10:57:53 +02:00
Leonardo Alt
a51577facf Fix Windows build 2019-09-02 22:37:30 +02:00
Leonardo Alt
a774b2d905 [SMTChecker] Zero-initialize arrays 2019-09-02 22:37:30 +02:00
Leonardo Alt
214e5c6369 [SMTChecker] Fix index access type type error 2019-08-27 16:39:19 +02:00
Leonardo Alt
1a70a46f9b [CHC] Add function blocks and check asserts 2019-08-15 12:25:15 +02:00
Leonardo
cbac3a4208
Merge pull request #7107 from ethereum/smt_chc_constructor_interface
[SMTChecker] Add CHC constructor/interface/error blocks
2019-08-12 15:06:08 +02:00
Leonardo Alt
bef6228810 [SMTChecker] Create CHC constructor/interface/error blocks 2019-08-12 12:34:57 +02:00
Leonardo Alt
360f868836 [SMTChecker] Fix literal string type mismatch 2019-08-10 21:51:46 +02:00
Leonardo Alt
4214cd1354 [SMTChecker] Fix ICE when reporting cex concerning state vars from different source files 2019-08-10 20:56:52 +02:00
Leonardo
67c855e93e
Merge pull request #7170 from ethereum/smt_fix_other_contract_state_var
[SMTChecker] Fix ICE when inlining functions from different source
2019-08-09 19:14:28 +02:00
Leonardo Alt
7b22496b1f [SMTChecker] Fix ICE when inlining functions that use state vars and are in a different source 2019-08-09 17:50:52 +02:00
Leonardo Alt
11d8cf588e [SMTChecker] Set unknown values for return variables of recursive functions 2019-08-09 17:01:08 +02:00
Leonardo Alt
369f8cd97f [SMTChecker] CHC create function return variables 2019-08-05 12:36:51 +02:00
Leonardo
11632966c9
Merge pull request #7171 from ethereum/smt_fix_compound_bitwise
[SMTChecker] Fix ICE compound bitwise op inside branch
2019-08-05 12:15:01 +02:00
Leonardo Alt
d5fb8cf58a [SMTChecker] Fix ICE compound bitwise op inside branch 2019-08-02 20:02:39 +02:00
Leonardo Alt
7b5863e583 Do not erase knowledge about storage pointers when another pointer is assigned 2019-08-02 13:09:06 +02:00
chriseth
04f298fd0e
Merge pull request #7132 from ethereum/smt_acc_solver
[SMTChecker] EncodingContext config flag to accumulate assertions
2019-08-01 13:04:37 +02:00
Leonardo Alt
44d7c6976a Erase pointer knowledge properly inside loops 2019-07-30 12:47:50 +02:00
Leonardo
00accd9daa
Merge pull request #7141 from ethereum/smt_fix_json
[SMTChecker] Reset SSA index to 0 instead of increasing in context reset
2019-07-29 10:20:06 +02:00
Leonardo
0197a200cd
Merge pull request #7142 from ethereum/smt_init_numbers
[SMTChecker] Initialize all number types with 0
2019-07-29 10:19:17 +02:00
Leonardo Alt
847f574e22 [SMTChecker] Fix ICE when inlining function with tuple expression 2019-07-26 16:29:29 +02:00
Leonardo Alt
cd5a5b3686 [SMTChecker] Initialize all number types with 0 2019-07-25 15:15:18 +02:00
Leonardo Alt
6bcbeb1d23 [SMTChecker] Reset SSA index to 0 instead of increasing in context reset 2019-07-25 14:16:34 +02:00
Leonardo
264035f0dd
Merge pull request #7120 from ethereum/smt_refactor_inlining
[SMTChecker] Refactor function inlining
2019-07-22 14:20:32 +02:00
Leonardo Alt
b204f27047 [SMTChecker] EncodingContext config flag to accumulate assertions 2019-07-19 19:31:25 +02:00
Leonardo Alt
03cc124f32 Add CHC skeleton 2019-07-19 11:52:05 +02:00
Leonardo Alt
382df64899 [SMTChecker] Refactor function inlining 2019-07-18 13:56:48 +02:00
Leonardo Alt
71144d0d39 [CHCChecker] Add CHCSolverInterface and Z3CHCSolverInterface 2019-07-15 17:31:39 +02:00
Leonardo
75eb67c3e0
Merge pull request #7050 from ethereum/smt_set_solver
[SMTChecker] EncodingContext's solver needs to be set dynamically
2019-07-08 15:19:55 +02:00
Leonardo Alt
96b0c4c148 [SMTChecker] New VariableUsage flag to inline functions 2019-07-08 14:40:33 +02:00