Commit Graph

3500 Commits

Author SHA1 Message Date
chriseth
01d7d50750 Fix initializing mapping return variables. 2020-11-11 18:08:42 +01:00
chriseth
59da25056b Fix Yul codegen for try with create. 2020-11-11 17:52:50 +01:00
chriseth
0f6d3bc4ed
Merge pull request #10192 from ethereum/refactorMoveTests2
Moving tests to semanticTests part2
2020-11-11 13:45:02 +01:00
chriseth
141277dadf Merge remote-tracking branch 'origin/develop' into breaking 2020-11-10 17:28:36 +01:00
Djordje Mijovic
6915d9d2a8 Moving some struct tests to semanticTests 2020-11-10 16:37:29 +01:00
Djordje Mijovic
490064590a Moving more abi decoder tests to semanticTests. 2020-11-10 16:37:26 +01:00
Djordje Mijovic
a838adc481 Moving some more array tests to semanticTests 2020-11-10 16:37:26 +01:00
Leonardo
55ac5de472
Merge pull request #10240 from ethereum/immutablesPureValue
Immutables with literal values are pure.
2020-11-10 15:23:33 +00:00
chriseth
6cc264ff0a
Merge pull request #10221 from ethereum/refactorArrayConversions
[Sol->Yul] Refactor array conversions
2020-11-10 16:18:11 +01:00
hrkrshnn
2348b721bb Tests after changing type of super to TypeType 2020-11-10 15:38:21 +01:00
Djordje Mijovic
362a36ed59 Enabling test for old codegen. 2020-11-10 15:13:48 +01:00
chriseth
da92fe548e Merge remote-tracking branch 'origin/develop' into breaking 2020-11-10 13:48:32 +01:00
chriseth
b981a2a74a
Merge pull request #10229 from ethereum/linking-in-assembly-mode
Linking in assembly mode
2020-11-10 13:21:57 +01:00
chriseth
3c1d990964
Merge pull request #10224 from ethereum/strict-literal-to-enum-conversion
[BREAKING] Strict explicit conversion between literals and enums
2020-11-10 13:15:12 +01:00
Alex Beregszaszi
81c448fb4c Rework TestFileParser 2020-11-10 13:09:07 +01:00
Alex Beregszaszi
c002fcc39f Untangle headers and namespaces in TestFileParser 2020-11-10 13:09:07 +01:00
chriseth
765ed13814 Immutables with literal values are pure. 2020-11-10 13:08:42 +01:00
Leonardo
25b2a38d8b
Merge pull request #10202 from ethereum/smt_fix_modifiers_branches
[SMTChecker] Fix CHC false positives when using branches inside modifiers
2020-11-09 16:42:30 +00:00
Kamil Śliwak
df8e182b46 Link binaries produced in assembly mode 2020-11-09 17:17:43 +01:00
chriseth
04195439b7 Merge remote-tracking branch 'origin/develop' into HEAD 2020-11-09 14:28:05 +01:00
hrkrshnn
03f58c6b52 Strict explicit conversion between literals and enums
Explicit conversions between literals and enums are only allowed if the literal can represent a
value in the enum.
2020-11-06 19:15:02 +01:00
Leonardo Alt
00858c0ccf Isoltets SMTChecker option and BMC specific tests 2020-11-06 15:03:38 +00:00
chriseth
8814e32b31
Merge pull request #10193 from ethereum/revert-test
Add tests for empty string literals in the ABI and fix TestFileParser
2020-11-05 15:31:11 +01:00
Alex Beregszaszi
1536e49b3d Add more syntax tests for uncovered cases 2020-11-05 10:30:09 +00:00
Leonardo Alt
1dbd8f8d67 Fix CHC false positives when using branches inside modifiers 2020-11-04 21:47:07 +00:00
Alex Beregszaszi
f2a51bcf38 Fix TestFileParser to support empty strings
Previously empty strings would be replaced with the token name, e.g. "string" in this case.
2020-11-04 17:49:23 +00:00
Alex Beregszaszi
39f6286e9f Add tests for ABI coding empty strings and string literals
Include the case of revert("")
2020-11-04 17:48:59 +00:00
Christian Parpart
1a9a3b115c Moving the surplus_input inline assembly test to yulSyntaxTests. 2020-11-04 12:03:33 +01:00
Christian Parpart
f55844e0f2 InlineAssembly: Extracting remaining tests. 2020-11-04 12:03:33 +01:00
Christian Parpart
3597c8343d InlineAssembly: Extracting tests for name clashes. 2020-11-04 12:03:33 +01:00
Christian Parpart
55f9eab51f InlineAssembly: Extracting tests for function definition and calls. 2020-11-04 12:03:33 +01:00
Christian Parpart
f2117b87f7 InlineAssembly: Extracting tests for for-statements. 2020-11-04 12:03:33 +01:00
Christian Parpart
671b1c950e InlineAssembly: Extracting function expression tests 2020-11-04 12:03:33 +01:00
Christian Parpart
616f03f577 InlineAssembly: Extracting tests for variable declaration 2020-11-04 12:03:33 +01:00
Christian Parpart
cc230ddda3 InlineAssembly: Extracting tests for switch statement 2020-11-04 12:03:33 +01:00
Christian Parpart
6f872dbebf InlineAssembly: Extracting tests for if statement 2020-11-04 12:03:33 +01:00
Leonardo
a8045ba5eb
Merge pull request #10177 from ethereum/smt_chc_fix_warnings
[SMTChecker] Report SMTEncoder warnings also via CHC
2020-11-03 16:41:16 +00:00
Harikrishnan Mulackal
24cce56215
Merge pull request #10189 from ethereum/underscore-tests
Add syntax and semantic tests for underscore
2020-11-03 17:06:31 +01:00
Leonardo Alt
daf859c15b [SMTChecker] report SMTEncoder warnings also via CHC 2020-11-03 16:06:17 +00:00
Alex Beregszaszi
b0864a4af9 Add syntax and semantic tests for underscore 2020-11-03 15:22:57 +00:00
chriseth
26cf6f189d Test with storage struct containing external function. 2020-11-03 14:34:18 +01:00
chriseth
1f3239d097 Simplify split parameter. 2020-11-03 14:34:18 +01:00
hrkrshnn
29e23efc93 Tests/Docs after "stricter explicit conversion from Literals to Integers" 2020-11-03 14:31:44 +01:00
chriseth
06d0459a72
Merge pull request #10187 from ethereum/validateExternal
[SolYul] Properly validate external functions from calldata.
2020-11-03 14:29:28 +01:00
chriseth
5ffee049fa Merge remote-tracking branch 'origin/develop' into breaking 2020-11-03 14:05:14 +01:00
chriseth
4e6ae00f89
Merge pull request #10096 from ethereum/pragmaabicoder
Introduce abicoder pragma.
2020-11-03 13:53:59 +01:00
chriseth
9305ab987e
Merge pull request #10185 from ethereum/refatorMoveTests
Move some tests to semanticTests
2020-11-03 13:50:30 +01:00
chriseth
e27a1b786b Wording in error messages. 2020-11-03 13:31:51 +01:00
chriseth
834da7be90 Introduce abicoder pragma. 2020-11-03 13:31:50 +01:00
chriseth
c16b535804 Validate external functions from calldata. 2020-11-03 13:28:08 +01:00
Djordje Mijovic
3f60223c41 Moving enum test to semanticTests 2020-11-03 13:13:21 +01:00
Djordje Mijovic
73fcd9b5f0 Moving some array tests to semanticTests 2020-11-03 11:34:22 +01:00
Djordje Mijovic
18a464f4f4 Moving some tests to semantic tests. 2020-11-03 11:00:52 +01:00
chriseth
22b31054b6
Merge pull request #10174 from ethereum/storeInternalFunctions
Implement internal functions in storage.
2020-11-03 09:56:12 +01:00
Đorđe Mijović
e0529989da
Merge pull request #10180 from ethereum/convertDuringStoring
[SolYul] Convert properly during storing.
2020-11-03 08:42:14 +01:00
chriseth
129b095b09 Implement internal functions in storage. 2020-11-02 23:10:03 +01:00
chriseth
49bd3f2af4 Convert properly during storing. 2020-11-02 21:15:34 +01:00
chriseth
b287a6e995 Disallow specifying call options multiple times. 2020-11-02 20:07:23 +01:00
Leonardo Alt
e38d0db683 [SMTChecker] Fix internal error when array.push() is used as LHS of assignment 2020-11-02 13:32:53 +00:00
Leonardo Alt
94e2506132 Fix inherited state vars for BMC 2020-11-02 11:42:39 +00:00
Martin Blicha
c1a57ffbfe [SMTChecker] More precise creation of verification targets. 2020-10-30 19:11:28 +01:00
chriseth
ef503f180c New test. 2020-10-29 18:53:15 +01:00
chriseth
6ec5612f35 Enable more tests. 2020-10-29 18:53:15 +01:00
chriseth
1066af3b98 Copy byte array to storage. 2020-10-29 18:53:15 +01:00
chriseth
ace810b078
Merge pull request #10137 from ethereum/fixedBytesOps
[Sol->Yul] Bit operations for fixed bytes types.
2020-10-29 18:04:07 +01:00
chriseth
ce50f05fc1 Merge remote-tracking branch 'origin/develop' into HEAD 2020-10-29 16:44:47 +01:00
chriseth
3b8c038647 Empty storage option for isoltest. 2020-10-29 13:55:07 +01:00
chriseth
d00ef95a72 Refactor isoltest function call kind. 2020-10-28 19:04:24 +01:00
chriseth
e93a84ccd4 Merge remote-tracking branch 'origin/develop' into HEAD 2020-10-28 18:19:31 +01:00
chriseth
0c12b2e53a Bit operations for fixed bytes types. 2020-10-28 18:04:54 +01:00
chriseth
fb40f29594
Merge pull request #10133 from ethereum/asm-error-codes
Split error codes for EVM opcodes
2020-10-28 13:00:23 +01:00
Alex Beregszaszi
24d8c2ed90 Split error codes for EVM opcodes 2020-10-28 11:45:46 +00:00
Đorđe Mijović
1f50b86aad
Merge pull request #10073 from ethereum/smt_format_array_cex
Format array cex
2020-10-28 12:39:19 +01:00
Leonardo Alt
25f75ce547 Remove nondet tests 2020-10-28 11:03:42 +00:00
chriseth
cc4b44058d
Merge pull request #10126 from ethereum/fixIceStructCalldataToStorageSol2Yul
[Sol->Yul] Fixing ice when copying struct that contains nested array to storage
2020-10-28 11:46:22 +01:00
Leonardo
07c454949f
Merge pull request #10127 from ethereum/fixIceSmtBitwise
[SMTChecker] Fix ICE when using >>>
2020-10-28 09:28:18 +00:00
Djordje Mijovic
28f92064b9 [Sol->Yul] Fixing ice when copying struct that contains nested array to storage 2020-10-28 09:28:40 +01:00
Djordje Mijovic
9cc37c3fa4 [SMTChecker] Fix ICE when using >>> 2020-10-28 09:25:14 +01:00
Leonardo Alt
4755cfe157 Fix assignment to contract member access 2020-10-26 14:39:02 +00:00
hrkrshnn
0e30fbbae1 Fix failing SMTChecker test on breaking 2020-10-26 14:01:40 +01:00
Leonardo Alt
d3d77e482c Fix ICE on conditions with tuples of rationals 2020-10-23 14:47:53 +01:00
chriseth
20f39ab6e9
Merge pull request #10097 from ethereum/develop
Merge develop into breaking.
2020-10-23 10:30:24 +02:00
chriseth
93642f9bfc Enum panic test for pre-byzantium. 2020-10-22 19:25:55 +02:00
chriseth
6d3528b4a7 Update gas costs. 2020-10-22 19:25:55 +02:00
chriseth
60af9d24ff Update tests. 2020-10-22 19:25:55 +02:00
chriseth
b559de11ee Ignore return error data for pre-byzantium. 2020-10-22 19:25:55 +02:00
chriseth
bfc8e26007 Remove low-level log functions. 2020-10-22 17:50:14 +02:00
Martin Blicha
ade3b9951c [SMTChecker] Added support for selector when expression's value is known at compile time 2020-10-22 14:18:52 +02:00
Leonardo Alt
b087fa9750 [SMTChecker] Fix ICE implicit conversion string literal -> byte 2020-10-21 22:03:01 +01:00
Martin Blicha
f0d81601db [SMTChecker] Adding division by zero checks in the CHC engine 2020-10-21 14:48:33 +02:00
Mathias Baumann
a4dc110b38 Fix dependency tracking for abstract contracts for Yul codegen 2020-10-20 16:58:24 +02:00
Mathias Baumann
e991465336 Fix dependency tracking for abstract contracts 2020-10-20 16:58:24 +02:00
Leonardo Alt
cf35785328 Add unknown message to all verification targets 2020-10-19 20:54:13 +01:00
chriseth
6979952995 Merge remote-tracking branch 'origin/develop' into HEAD 2020-10-19 18:02:50 +02:00
chriseth
c9ef727136 New tests. 2020-10-19 16:58:59 +02:00
chriseth
e61fa59593 Update existing tests. 2020-10-19 16:58:59 +02:00
chriseth
527c073bb9 Checked arithmetic by default. 2020-10-19 16:58:37 +02:00
Daniel Kirchner
79d9a1ca81 Tests for abi.encode. 2020-10-16 20:24:43 +02:00
Daniel Kirchner
e06d4303fb Semantic tests. 2020-10-16 19:40:41 +02:00
Daniel Kirchner
909ce9164a Allow arrays of contract types as type expressions e.g. for abi.decode. 2020-10-16 19:40:41 +02:00
Daniel Kirchner
db4dd51739
Merge pull request #10055 from ethereum/userDefinedLibraryTypes
Disallow invalid use of library names as type names.
2020-10-16 18:55:42 +02:00
Daniel Kirchner
3f14c904b0 Disallow invalid use of library names as type names. 2020-10-16 18:25:08 +02:00
Leonardo
a097f9f124
Merge pull request #10025 from ethereum/smt_crypto_functions
[SMTChecker] Support crypto functions in CHC
2020-10-16 16:40:29 +01:00
Martin Blicha
8c351278ac [SMTChecker] added test to check correct handling of the sign of the modulo operation 2020-10-16 16:17:32 +02:00
Martin Blicha
78c8fbc7ce [SMTChecker] encoding division and modulo operations using slack variables 2020-10-16 16:06:31 +02:00
Leonardo Alt
54f76e081a [SMTChecker] Support crypto functions in CHC 2020-10-16 14:57:13 +01:00
Djordje Mijovic
4a66723ff9 [Sol->Yul] Implementing resizing of dynamic byte arrays
Co-authored-by: chriseth <chris@ethereum.org>
2020-10-15 22:05:35 +02:00
chriseth
c9ed1b9ae9
Merge pull request #10047 from ethereum/removeMemoryGuards
Disable StackLimitEvader again until we have stronger correctness guarantees.
2020-10-15 18:56:33 +02:00
chriseth
00fb152316
Merge pull request #10048 from ethereum/develop
Merge develop into breaking
2020-10-15 17:30:11 +02:00
chriseth
89bdad2096
Merge pull request #10043 from ethereum/emptyArrayCopy
Fix empty array copy bug.
2020-10-15 17:07:54 +02:00
chriseth
38abadf502 Fix empty array copy bug. 2020-10-15 16:48:08 +02:00
Daniel Kirchner
82876fd00e Disable StackLimitEvader again until we have stronger correctness guarantees. 2020-10-15 16:16:41 +02:00
chriseth
e17d6853a9
Merge pull request #9985 from ethereum/optimizeDeleteStructSol2Yul
[Sol->Yul] Optimizing delete struct.
2020-10-15 16:03:06 +02:00
chriseth
837dd004c8 Enable some more Yul tests. 2020-10-14 17:43:19 +02:00
chriseth
979d3062bc
Merge pull request #10033 from ethereum/develop
Merge develop into breaking
2020-10-14 14:12:20 +02:00
Djordje Mijovic
6f7947cfa5 [Sol->Yul] Optimizing delete struct.
Co-authored-by: Daniel Kirchner <daniel@ekpyron.org>
2020-10-14 13:35:15 +02:00
chriseth
92a2cddbfa
Merge pull request #10024 from ethereum/outofBoundsGetter
Use revert for out-of-bounds array index access in getter.
2020-10-14 12:33:41 +02:00
chriseth
56d6855222
Merge pull request #9738 from ethereum/arrayCopyingSol2Yul
[Sol->Yul] Implementing copying of arrays to storage
2020-10-14 12:22:09 +02:00
chriseth
8d241fece9
Merge pull request #9849 from ethereum/fixIce9817
Fixing ICE on returning struct with mapping from library
2020-10-14 00:05:19 +02:00
Djordje Mijovic
674855f684 [Sol->Yul] Adding new and activating old tests for copying of arrays to storage. 2020-10-13 20:31:11 +02:00
Leonardo Alt
88f783bb1e Remove more tests because current Spacer crashes 2020-10-13 19:27:49 +01:00
Djordje Mijovic
1272c474ba Fixing ICE when returning Struct from library 2020-10-13 20:00:11 +02:00
chriseth
5dc3a971cb Use revert for out-of-bounds array index access in getter. 2020-10-13 18:57:41 +02:00
Leonardo Alt
b9b9c229b4 New tests 2020-10-13 17:49:04 +01:00
Leonardo Alt
47b268d509 Update tests 2020-10-13 17:49:04 +01:00
Leonardo Alt
aec456021d Add tx constraints to CHC 2020-10-13 17:49:04 +01:00
chriseth
f6e57a0eec
Merge pull request #10023 from ethereum/develop
Merge develop into breaking.
2020-10-13 18:18:53 +02:00
chriseth
fed6ea0125 Fix error message formatting in isoltest. 2020-10-13 17:20:19 +02:00
chriseth
c86ea59384
Merge pull request #10019 from ethereum/exp-associativity
[BREAKING] Exp associativity
2020-10-13 17:03:18 +02:00
hrkrshnn
13e7012e1e Parser: Exponentiation is right associative 2020-10-13 16:38:37 +02:00
Mathias Baumann
006e5f2e1f Allow path syntax for super constructor calls 2020-10-13 14:32:11 +02:00
Mathias Baumann
0b7b174945 Add AST Node IdentifierPath 2020-10-13 14:32:11 +02:00
Mathias Baumann
32b4f18023 Print warning for unnamed return parameters and no return statement 2020-10-13 13:11:29 +02:00
chriseth
0ea4bdafcd
Merge pull request #10017 from ethereum/develop
Merge develop into breaking.
2020-10-13 12:58:23 +02:00
chriseth
4b342a7cad
Merge pull request #9816 from ethereum/exp-base-literals
[Sol->Yul] Optimization for exponentiation when the base is a literal
2020-10-12 19:34:38 +02:00
Harikrishnan Mulackal
418aa01c5b Optimization for exponentiation when the base is a literal 2020-10-12 18:54:58 +02:00
Djordje Mijovic
e23d8f5593 [SMTChecker] Supporting inline arrays. 2020-10-12 16:59:14 +02:00
chriseth
8a1bf41ac0
Merge pull request #10010 from ethereum/develop
Merge develop into breaking.
2020-10-12 15:33:34 +02:00
Kamil Śliwak
e1cc888369 Fix checkBaseABICompatibility() to make it actually check return parameters and not just ordinary parameters twice 2020-10-12 15:14:56 +02:00
Kamil Śliwak
9dc7f5de4a Enable 4 semantic tests from functionCall.inheritance that now work via Yul
- Looks like something overlooked in one of the recently merged PRs.
2020-10-12 15:10:16 +02:00
Kamil Śliwak
3128e82a9a Look for experimental pragmas in the module containing the definition when generating code for modifiers and inherited functions 2020-10-12 14:29:53 +02:00
chriseth
e7603d7590
Merge pull request #10003 from ethereum/more-tests-and-docs-for-mixed-abi-encoder-use-checks
More tests and some minimal docs for mixed ABI encoder use
2020-10-12 14:22:44 +02:00
chriseth
1a125cf755
Merge pull request #10006 from ethereum/bug-9229-fix
Fixes internal compiler error with an unused reference to module member.
2020-10-12 13:43:35 +02:00
chriseth
d1b06328a6
Merge pull request #8635 from ethereum/test-coverage-inheritance
Improving test coverage wrt. inheritance
2020-10-12 13:40:48 +02:00
Kamil Śliwak
94a49fcc4a Additional tests for ABIEncoderV1 calls using ABIEncoderV2 types 2020-10-12 13:26:01 +02:00
Christian Parpart
8ac0bee361 Adds some more tests and groups all function call inheritance related together into single sub-directory. 2020-10-12 12:29:55 +02:00
Leonardo Alt
3d2e6252f0 Add/update tests 2020-10-12 11:11:52 +01:00
Leonardo Alt
18cf01c187 Add this and state to CHC 2020-10-12 11:11:52 +01:00
Christian Parpart
712d0805eb Fixes internal compiler error with an unused reference to module member. 2020-10-12 11:56:01 +02:00
Kamil Śliwak
d9215cf956
Merge pull request #9999 from ethereum/enableTest
Enable test that started working for yul.
2020-10-09 19:44:15 +02:00