Commit Graph

2293 Commits

Author SHA1 Message Date
Daniel Kirchner
7202ebb5b2 Fix internal compiler error for arrays of recursive structs. 2019-10-01 16:51:14 +02:00
Christian Parpart
00d7dac15f Fixes source location in warning for shadowing import delcarations. 2019-09-30 11:45:46 +02:00
Christian Parpart
f85f6ba7e0 Fixes doxygen style multiline comment parsing for files with CRLF as line terminators. 2019-09-25 12:59:46 +02:00
chriseth
cda23d63e9
Merge pull request #7458 from ethereum/fixErrorMessage
Fix error message about accessing storage pointers.
2019-09-24 15:11:03 +02:00
chriseth
973e4ca90a
Merge pull request #7453 from ethereum/smt_lib_const_array
[SMTChecker] Add "as const: function to SMTLib2Interface
2019-09-24 11:02:34 +02:00
chriseth
ca21659749 Fix error message about accessing storage pointers. 2019-09-24 10:52:02 +02:00
chriseth
bfc8fd23ac Document chainid and selfbalance. 2019-09-19 15:35:37 +02:00
Leonardo Alt
ed9674be8d [SMTChecker] Add as const function to SMTLib2Interface 2019-09-18 22:57:14 +02:00
chriseth
7a79742f3d Out of body again. 2019-09-17 12:30:15 +02:00
Leonardo Alt
eab9f65610 Fix ICE when pop dyn storage array of mapping 2019-09-16 16:33:17 +02:00
Leonardo Alt
e1c238e25f [SMTChecker] Add loop support 2019-09-13 12:40:53 +02:00
Erik Kundt
e92b921123 [isoltest] Adds support for fallback and ether functions. 2019-09-13 10:55:46 +02:00
chriseth
4f80117eef Use builtin iszero for for loop condition rewriting. 2019-09-12 10:26:16 +02:00
Erik Kundt
4162c3d7af [isoltest] Adds fallback formatting. 2019-09-11 15:45:53 +02:00
Erik Kundt
5e12e0cf27 [isoltest] Fixes auto-update for revert. 2019-09-09 22:46:43 +02:00
chriseth
8485a1abec Change ABI sorting order. 2019-09-04 13:06:09 +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
Mathias L. Baumann
e1bb4b9f81
Merge pull request #7280 from ethereum/isoltest-empty-revert
[isoltest] Support empty revert message
2019-08-26 11:45:36 +02:00
Erik Kundt
755dae5d66 [isoltest] Supports empty revert message. 2019-08-26 11:06:30 +02:00
Leonardo Alt
c27235b2f5 [SMTChecker] Adapt division test for Z3 only 2019-08-23 17:33:29 +02:00
Mathias Baumann
0e3ff25b4e Make sure json output array order is consistent
The source of the "contractDependencies" value was an std::map, thus
order was more or less random.
2019-08-19 17:42:03 +02:00
Daniel Kirchner
aa2167b208 Extract some import tests. 2019-08-19 14:45:26 +02:00
Daniel Kirchner
6ed219ebe8 Support multiple sources for syntax tests. 2019-08-19 14:45:26 +02:00
Daniel Kirchner
4a65c5ebaa Compile succeeding syntax tests. 2019-08-16 17:14:49 +02:00
Leonardo Alt
1a70a46f9b [CHC] Add function blocks and check asserts 2019-08-15 12:25:15 +02:00
chriseth
2508cbc1eb
Merge pull request #7095 from ethereum/isoltest-failure-reason
[isoltest] Support FAILURE with reason
2019-08-15 11:37:56 +02:00
Erik Kundt
6c73bc5bac [isoltest] Refactors parameter formatting. 2019-08-14 21:28:43 +02:00
Erik Kundt
18157f5a49 [isoltest] Splits smoke test into separate files. 2019-08-14 21:28:43 +02:00
Erik Kundt
30483acc42 [isoltest] Support FAILURE with reason. 2019-08-14 21:28:43 +02:00
Daniel Kirchner
b0a5666b43 Better error messages when writing to expressions that cannot be written to. 2019-08-14 17:59:48 +02:00
Leonardo
ffe906129f
Merge pull request #7210 from ethereum/smt_fix_type_mismatch
[SMTChecker] Support StringLiteral type
2019-08-12 14:32:43 +02:00
Leonardo Alt
955b97097c [SMTChecker] Relax expectations for complex nonlinear tests 2019-08-11 22:20:31 +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 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
Daniel Kirchner
77729023a8 Enable asan workaround in optimizer test for gcc as well. 2019-08-09 16:11:54 +02:00
Bhargava Shastry
a20dc624d4 Selectively disable time sensitive check in the constant_optimization_early_exit unit test for address sanitizer builds. 2019-08-08 17:35:46 +02:00
chriseth
c4638cc5cb Remove mention of IPC. 2019-08-08 17:35:46 +02:00
chriseth
3dec3af638 Use evmone for testing. 2019-08-08 17:35:44 +02:00
chriseth
9955c51769
Merge pull request #7077 from ethereum/sol-yul-delete-fixed-storage
[Sol->Yul] Implement delete for fixed-sized storage arrays
2019-08-08 16:47:16 +02:00
mingchuan
15631a7fbe Split calldataEncodedSize into calldataEncodedSize, calldataEncodedTailSize and calldataHeadSize and fix all usages. 2019-08-08 15:52:21 +02:00
Mathias Baumann
e072885031 [Sol->Yul] Implement delete for fixed-sized storage arrays 2019-08-07 18:28:52 +02:00
chriseth
d44f680a51
Merge pull request #7091 from ethereum/isoltest-value-format-fix
[isoltest] Fix (aligned) hex parsing and formatting
2019-08-07 17:55:37 +02:00
Erik Kundt
5ca991ac81 [isoltest] Allows odd-sized hex literals. 2019-08-07 17:19:27 +02:00
chriseth
c8f04b88bf
Merge pull request #7176 from ethereum/decodeMemoryLocation
Always copy dynamically-sized memory arrays during CompilerUtils::abiDecode
2019-08-07 15:42:14 +02:00
Erik Kundt
fe15db6537 [isoltest] Fixes exception handling while parsing literals. 2019-08-07 12:22:52 +02:00
Erik Kundt
e206ad6c24 [isoltest] Fixes hex (plus alignment) formatting. 2019-08-07 12:15:10 +02:00
Daniel Kirchner
efb34bdf22 Always copy dynamically-sized memory arrays during CompilerUtils::abiDecode. 2019-08-06 14:11:14 +02:00
Mathias Baumann
e4ad0e8e6d Fix gcc9 errors 2019-08-06 12:12:09 +02:00
chriseth
24074d8bac
Merge pull request #7172 from ethereum/smt_fix_return_tuple
[SMTChecker] CHC create function returned expressions
2019-08-05 16:48:13 +02:00
chriseth
42290f912b
Merge pull request #7052 from ethereum/isoltest-update-improvements
[isoltest] Update improvements (support for missing types)
2019-08-05 16:45:06 +02:00
Erik Kundt
f914415fb2 [isoltest] Updates type retrieval from ABI and its formatting. 2019-08-05 16:15:07 +02:00
Erik Kundt
38285b33d7 [isoltest] Prints bytes result if expectations mismatch. 2019-08-05 15:11:43 +02:00
Erik Kundt
07051f41d2 [isoltest] Reworks (default) ABI Type construction. 2019-08-05 15:00:04 +02:00
Erik Kundt
d9b98bf7af [isoltest] Cleans up BytesUtils. 2019-08-05 15:00:04 +02:00
Erik Kundt
a7a8ba73f9 [isoltest] Moves error types to dedicated file. 2019-08-05 15:00:04 +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
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
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
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
a30be56c27 Additional type info for ABI. 2019-07-18 16:54:11 +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
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
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
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
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
479b843067
Merge pull request #7048 from ethereum/soltest-refactoring
[isoltest] Types and formatting refactoring
2019-07-09 12:50:15 +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
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
Leonardo Alt
be663680d4 [SMTChecker] Clear encoding context before engine starts 2019-07-08 11:56:04 +02:00
Erik Kundt
d06be2c53f Restructures alignment and bytes utils in isoltest. 2019-07-04 19:15:43 +02:00
Erik Kundt
de34f7712d Separates types and conversion functions in soltest. 2019-07-04 14:11:07 +02:00
Leonardo Alt
934e00d235 [SMTChecker] SymbolicVariables use EncodingContext to declare SMT vars 2019-07-03 16:05:56 +02:00
chriseth
2b91022b25 Fix view/pure checker for access to base. 2019-07-03 11:19:57 +02:00
chriseth
a4ef435c07 Automated ABI Json tests. 2019-07-02 18:11:49 +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