Commit Graph

3207 Commits

Author SHA1 Message Date
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
chriseth
9b375edfe3
Merge pull request #6787 from ethereum/sol2yul-ctor-code
Improve constructor-code codegen (wrt. state variable initialization)
2019-08-05 11:50:34 +02:00
mingchuan
46387eaea2 [Yul] ExpressionInliner: avoid duplicating high cost expressions 2019-08-05 11:48:32 +02:00
Christian Parpart
235638b3fc Implements constructor code for state variables. 2019-08-05 11:23: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
Bhargava Shastry
e018d62a67 Dynamically sized array dimensions can be zero sized 2019-08-01 16:33:57 +02:00
chriseth
7421d85346
Merge pull request #7094 from ethereum/isoltest-arrow-optional
[isoltest] Introduce shorthand declaration: make `->` optional.
2019-08-01 15:42:42 +02:00
chriseth
742b4271fd
Merge pull request #7159 from ethereum/always_demand_tests
Make sure a semantic test file always contains function calls
2019-08-01 15:12:13 +02:00
chriseth
2a25d7461f
Merge pull request #7123 from rocky/tolerate-pragma-mismatch
A pragma version mismatch is not fatal if ...
2019-08-01 14:48:24 +02:00
chriseth
6730a59f74
Merge pull request #7157 from ethereum/fix-7155
FunctionType: Return correct stacksize for transfer/send
2019-08-01 14:40:35 +02:00
Mathias Baumann
c920b50ebe Make sure a semantic test file always contains function calls
Because if not, the code isn't even compiled.
2019-08-01 14:02:33 +02:00
Mathias Baumann
e887c06f6b FunctionType: Return correct stacksize for transfer/send 2019-08-01 13:56:09 +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 Alt
847f574e22 [SMTChecker] Fix ICE when inlining function with tuple expression 2019-07-26 16:29:29 +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
Christian Parpart
b6446aa615 Extracting more end-to-end tests. 2019-07-22 16:31:46 +02:00
Erik Kundt
41fb6f4ff8 isoltest: Removes additional whitespaces from output. 2019-07-22 13:43:20 +02:00
Erik Kundt
8c51a089d7 isoltest: Makes -> declaration optional. 2019-07-22 13:25:11 +02:00
Christian Parpart
58d8243921 isoltest: Fixes parsing and printing strings with *basic* escape sequences in it.
We explicitly did not implement a fully conformant ANSI escape sequence
parser but only what is needed for now.
2019-07-22 11:32:17 +02:00
Leonardo
508cf66da2
Merge pull request #7062 from ethereum/smt_chc_checker
[SMTChecker] Add skeleton for CHC
2019-07-19 15:41:43 +02:00
Leonardo Alt
03cc124f32 Add CHC skeleton 2019-07-19 11:52:05 +02:00
chriseth
8ba00cd7dd
Merge pull request #7126 from ethereum/addComprMSizeTest
Add another test related to stack compressor and msize.
2019-07-18 20:12:11 +02:00
chriseth
a30be56c27 Additional type info for ABI. 2019-07-18 16:54:11 +02:00
chriseth
0c0b5a09cd Add another test related to stack compressor and msize. 2019-07-18 16:40:46 +02:00
rocky
f9b631f410 A pragma version mismatch is not fatal if ...
error recovery is desired.

Fixes #7085
2019-07-17 19:01:01 -04:00
chriseth
15cba9163e
Merge pull request #7106 from ethereum/fixMSizeOpt
Do not overwrite allowMSizeOptimization
2019-07-17 18:17:40 +02:00
Bhargava Shastry
90d421352a Add bool type and array of bool and dynamic byte types 2019-07-17 14:24:43 +02:00
Bhargava Shastry
00bca77cca Updated evmc to version tracked by evmone v0.1.0 2019-07-17 14:24:27 +02:00
Christian Parpart
810a0de1aa Add evmc and host interface implementation. Modify fuzzer harness to make use of evmc host/vm. 2019-07-17 10:55:33 +02:00
chriseth
4fa7800458
Merge pull request #7109 from ethereum/ossfuzz-ci-update
Update fuzzing deps in docker image and ossfuzz CMakeLists.txt
2019-07-17 10:51:28 +02:00
chriseth
35ca6ef5ed
Merge pull request #7079 from ethereum/moreWorkOnEWasmExternals
Add eWasm externals.
2019-07-16 14:51:43 +02:00
chriseth
a0a0a34a21 Do not overwrite allowMSizeOptimization 2019-07-16 10:13:18 +02:00
chriseth
147f736f10
Merge pull request #7092 from ethereum/isoltest-parser-linenumbers
[isoltest] Add source location to parser errors
2019-07-16 10:09:15 +02:00
Bhargava Shastry
5aa571e56f Update fuzzing deps in docker image and ossfuzz CMakeLists.txt 2019-07-16 09:10:02 +02:00
Erik Kundt
2a1473fd30 Adds line numbers to parser errors in isoltest. 2019-07-15 14:16:07 +02:00
Erik Kundt
e269a0ff70 Adds constructor calls with ether value to isoltest. 2019-07-13 12:42:25 +02:00
chriseth
6c31a5f3dd Improve formatting. 2019-07-11 17:37:23 +02:00
chriseth
e3433aa4eb Add eWasm externals. 2019-07-11 17:37:23 +02:00
chriseth
869d69d293 Supply full object to stack compressor and Optimizer Suite. 2019-07-10 18:49:42 +02:00
chriseth
2a5280faa0 Check availability of data objects already in analysis phase. 2019-07-10 18:49:42 +02:00
chriseth
f3bdc79187
Merge pull request #7075 from ethereum/sol-yul-getter
[Sol->Yul] Implement keccak & getter functions
2019-07-10 14:11:27 +02:00
Mathias Baumann
d264e3e0ba [Sol->Yul] Implement getter functions 2019-07-10 13:42:39 +02:00
Mathias Baumann
37f04976a2 [Sol->Yul] Implement keccak256 2019-07-09 18:25:07 +02:00
Bhargava Shastry
3b33ff1454 Adjust call to suffixedVariableNameList post refactoring in ABIv2 proto fuzzer and slim down dependencies. 2019-07-09 18:18:40 +02:00
chriseth
15eb8fec50
Merge pull request #7015 from ethereum/sol-yul-arrays
[Sol->Yul] Implement uint256[] memory arrays
2019-07-09 17:34:46 +02:00
Mathias Baumann
0f24fcea17 [Sol->Yul] Implement uint256[] memory arrays 2019-07-09 15:36:02 +02:00
chriseth
859dbaa2a3
Merge pull request #7053 from djudjuu/moveSuffixHelper
move SuffixHelper to StringUtils
2019-07-09 14:32:05 +02:00
djudjuu
cafa01cbf6 moved SuffixHelper to StringUtils 2019-07-09 13:50:07 +02:00
chriseth
479b843067
Merge pull request #7048 from ethereum/soltest-refactoring
[isoltest] Types and formatting refactoring
2019-07-09 12:50:15 +02:00
chriseth
45cedc09fe
Merge pull request #6880 from ethereum/abiv2proto
Abiv2proto
2019-07-09 12:20:34 +02:00
chriseth
8d006d2017
Merge pull request #7068 from ethereum/asmConstNoValue
Cope with constants without value in inline assembly.
2019-07-09 12:13:56 +02:00
chriseth
9cb9021c36 Cope with constants without value in inline assembly. 2019-07-09 11:12:13 +02:00
Bhargava Shastry
5bc1a68b40 ABIv2 proto fuzzer implementation for a limited set of value and non-value types (arrays included). 2019-07-09 10:50:43 +02:00
chriseth
04bad01ab1
Merge pull request #7063 from ethereum/EndToEndTest-extractions-2
Extracting more end-to-end tests.
2019-07-08 16:15:22 +02:00
Christian Parpart
a9a56bc6dd
Extracting more end-to-end tests. 2019-07-08 16:04:52 +02:00
chriseth
2700cb0b43 Fix commandline tests. 2019-07-08 14:28:54 +02:00
chriseth
25928767b7
Merge pull request #7058 from ethereum/smt_reset_context
[SMTChecker] Clear encoding context before engine starts
2019-07-08 12:36:50 +02:00
chriseth
bd5d11d82d
Merge pull request #7056 from ethereum/yul-reindenter-with-SP
yul::reindent() to reindent with spaces instead of tabs (width: 4)
2019-07-08 12:36:26 +02:00
chriseth
7267873a96
Merge pull request #7038 from ethereum/addSecondaryLocationToStandardIO
Provide secondary source location for error messages in standard json.
2019-07-08 12:00:09 +02:00
Leonardo Alt
be663680d4 [SMTChecker] Clear encoding context before engine starts 2019-07-08 11:56:04 +02:00
Christian Parpart
7ba9537ae1
yul::reindent() to reindent with spaces instead of tabs (width: 4) 2019-07-08 11:43:11 +02:00
Erik Kundt
d06be2c53f Restructures alignment and bytes utils in isoltest. 2019-07-04 19:15:43 +02:00
chriseth
019ec63f63
Merge pull request #7036 from ethereum/unescapeNewlines
Unescape newlines in json test expectations.
2019-07-04 18:15:51 +02:00
Erik Kundt
de34f7712d Separates types and conversion functions in soltest. 2019-07-04 14:11:07 +02:00
chriseth
d3e542d32c Provide secondary source location for error messages in standard json. 2019-07-04 10:54:01 +02:00
chriseth
7e329769a0 Unescape newlines for test expectations. 2019-07-04 08:44:35 +02:00
Leonardo Alt
934e00d235 [SMTChecker] SymbolicVariables use EncodingContext to declare SMT vars 2019-07-03 16:05:56 +02:00
chriseth
b837705259
Merge pull request #7018 from ethereum/compile_only_requested
Compile only requested sources and contracts
2019-07-03 14:11:42 +02:00
Leonardo Alt
b8d4400588 Make it work on Mac OS 2019-07-03 11:26:28 +02:00
chriseth
2b91022b25 Fix view/pure checker for access to base. 2019-07-03 11:19:57 +02:00
Leonardo Alt
358368cd0c Tests for output selection 2019-07-03 09:58:55 +02:00
chriseth
a4ef435c07 Automated ABI Json tests. 2019-07-02 18:11:49 +02:00
chriseth
776fec1913 Make json output a bit prettier. 2019-07-02 18:07:05 +02:00
chriseth
60525dbf52
Merge pull request #7026 from ethereum/asmConstants
Support direct constants in inline assembly.
2019-07-02 14:21:24 +02:00
chriseth
e542e46163
Merge pull request #7022 from ethereum/smt_create_expr
[SMTChecker] Always create symbolic expression
2019-07-02 14:07:24 +02:00
chriseth
cdd137e3d1 Support constant numbers in inline assembly. 2019-07-02 14:01:05 +02:00
chriseth
ca10b59b25
Merge pull request #7020 from ethereum/smt_fix_callstack_message
[SMTChecker] Fix wrong assertion in callstack message
2019-07-02 13:47:49 +02:00
Leonardo Alt
fb3c85633b Always create symbolic expression 2019-07-01 16:25:33 +02:00
Leonardo Alt
75663dc91e [SMTChecker] Fix require with message 2019-07-01 16:17:06 +02:00
Leonardo Alt
6606a13ed2 [SMTChecker] Remove unsound assertion (too strong) 2019-07-01 16:16:39 +02:00
chriseth
22776cddcd
Merge pull request #7025 from ethereum/EndToEndTest-extractions-1
Extracting some Solidity end-to-end tests.
2019-07-01 15:54:09 +02:00
Christian Parpart
62f6e4bad3 Extracting some Solidity end-to-end tests. 2019-07-01 15:37:46 +02:00
Leonardo Alt
3cb4ed83c1 [SMTChecker] Split SMTChecker into SMTEncoder and BMC 2019-07-01 15:05:03 +02:00
chriseth
4976b3ec67 More work on eWasm polyfill. 2019-07-01 13:05:20 +02:00
chriseth
2ee272acf3
Merge pull request #7002 from ethereum/wasmSwitch
Wasm switch
2019-06-27 20:51:39 +02:00
chriseth
8c65a2383f
Merge pull request #7014 from ethereum/constantOptDirtyScratch
Add test for constant optimization with dirty scratch space.
2019-06-27 16:17:31 +02:00
chriseth
3be21800ac
Merge pull request #6683 from ethereum/updateSwarm
Update swarm hash.
2019-06-27 13:18:29 +02:00
chriseth
e2bfb1a663 Translation of switch statement for wasm backend. 2019-06-27 13:02:35 +02:00
chriseth
53f37f487f
Merge pull request #6994 from ethereum/smt_refactor_targets
[SMTChecker] Delay all checks
2019-06-27 12:56:34 +02:00
chriseth
89f0e1e6da Use updated swarm hash. 2019-06-27 12:49:06 +02:00
chriseth
aa11ad7d0a Update swarm hash. 2019-06-27 12:48:51 +02:00
chriseth
8d18003808
Merge pull request #6716 from ethereum/wasmTranslation
[Yul] EVM to Wasm translation
2019-06-27 12:31:35 +02:00
chriseth
55bf1b547e Add test for constant optimization with dirty scratch space. 2019-06-27 12:15:49 +02:00
Leonardo Alt
a28b84fdc3 [SMTChecker] Add a more general VerificationTarget 2019-06-27 10:31:50 +02:00
chriseth
f05805c955
Merge pull request #7003 from ethereum/missingTestKnowledge
Adding forgotten test for load resolver.
2019-06-26 13:08:55 +02:00
chriseth
b4a0a79398
Merge pull request #6993 from ethereum/smt_false_positives
[SMTChecker] Remove overflow check for assignments
2019-06-26 13:06:31 +02:00
chriseth
c6f7f5b2b0 Enable EWasm output. 2019-06-25 19:07:38 +02:00