Commit Graph

3544 Commits

Author SHA1 Message Date
chriseth
f1d28b1d17 Fix string literal assignment to storage. 2020-11-19 15:27:21 +01:00
chriseth
7f0cc433be Fix mapping conversion. 2020-11-18 20:20:25 +01:00
chriseth
a7db4fa4a5 Merge remote-tracking branch 'origin/develop' into breaking 2020-11-18 20:05:02 +01:00
Kamil Śliwak
5560239cf5 Replace links to readthedocs.io with ones using the new domain 2020-11-18 15:20:34 +01:00
chriseth
1508b08f3e Implement inline assembly access to constants. 2020-11-18 12:35:23 +01:00
chriseth
9f0a631948
Merge pull request #10208 from ethereum/offsetLengthCalldata
Support .offset and .length for dynamic calldata arrays
2020-11-18 12:09:11 +01:00
chriseth
2665eaa4fa Support .offset and .length for calldata bytes and string arrays. 2020-11-18 01:45:56 +01:00
Kamil Śliwak
ced140615a Test for calling external library functions with mapping parameters (does not work via Yul yet) 2020-11-17 20:36:58 +01:00
Kamil Śliwak
dfa0a0cdff IR codegen: Handle address() with library type argument and external library calls 2020-11-17 20:36:39 +01:00
chriseth
691f7e6eae Fix merge conflicts. 2020-11-17 19:59:23 +01:00
chriseth
e8a278eefa Merge remote-tracking branch 'origin/develop' into breaking 2020-11-17 18:51:57 +01:00
chriseth
049c7f7a8e Disallow using modifiers not in the current contract or in base contracts. 2020-11-17 18:33:45 +01:00
chriseth
e64fd99fb5 Fix qualified modifier lookup. 2020-11-17 18:33:45 +01:00
Kamil Śliwak
4174f38b02 StandardCompiler: Include file names in link references 2020-11-17 17:51:04 +01:00
chriseth
74ce8d6979 Fix assignment to non-lvalue storage values. 2020-11-17 15:56:34 +01:00
chriseth
df53b53aa5
Merge pull request #10315 from ethereum/fixToStorageCopy
[SolYul] Fix bug in array to storage copy routine.
2020-11-17 15:56:21 +01:00
chriseth
fffd0306f5 Fix bug in array to storage copy routine. 2020-11-17 14:56:44 +01:00
chriseth
bb97363abf
Merge pull request #9989 from ethereum/issue-9947
Natspec: Fix internal error when different return name was inherited
2020-11-17 13:54:03 +01:00
Mathias Baumann
559b27aaad Natspec: Fix internal error when different return name was inherited 2020-11-17 11:56:32 +01:00
chriseth
adaf1ff7df
Merge pull request #10272 from ethereum/storageStorageCopyForStructs
Storage storage copy for structs
2020-11-17 11:47:48 +01:00
Leonardo
65c2089b43
Merge pull request #10310 from blishko/issue-10306
[SMTChecker] Adding a dummy frame to the call stack for the implicit constructor
2020-11-17 09:34:49 -01:00
chriseth
98cc7a1ea9 Copying structs from storage to storage. 2020-11-17 11:06:25 +01:00
chriseth
d9fb17a85e Copy value array from storage to storage. 2020-11-17 10:51:34 +01:00
chriseth
7ccb4fea2b
Merge pull request #10270 from ethereum/copyByteArrayFromStorageToStorage
[SolYul] Copy byte arrays from storage to storage.
2020-11-17 00:30:30 +01:00
Martin Blicha
07427c798c [SMTChecker] Adding a dummy frame to the call stack for the implicit constructor 2020-11-16 22:46:17 +01:00
Leonardo
81b3a13333
Merge pull request #10289 from ethereum/fix-standard-json-crash-on-linker-references-without-colon
Fix standard JSON crash on linker references without a colon
2020-11-16 19:27:35 -01:00
chriseth
62893aa1a1 Copy byte arrays from storage to storage. 2020-11-16 19:06:33 +01:00
Kamil Śliwak
1bf700e088 Return a type error when an enum has more than 256 members 2020-11-16 18:58:19 +01:00
chriseth
5431afcc8c
Merge pull request #10287 from ethereum/refactorMoveTests3
Moving mostly array tests to semanticTests
2020-11-16 18:50:40 +01:00
Kamil Śliwak
b97c6c55ad StandardCompiler: Don't assume that link reference always contains a colon 2020-11-16 17:41:54 +01:00
Kamil Śliwak
543f804226 StandardCompiler: Add helpers to streamline comparing link references in tests 2020-11-16 17:41:54 +01:00
Djordje Mijovic
1428a939a6 Moving some more array tests to semanticTests. 2020-11-13 12:32:39 +01:00
Djordje Mijovic
29d480d0ed Moving some byte array pop tests to semanticTests. 2020-11-13 12:32:39 +01:00
Djordje Mijovic
31981bad12 Organizing array tests into more directories. 2020-11-13 12:32:39 +01:00
Djordje Mijovic
11033c9536 Moving some bytes and array tests to semanticTests 2020-11-13 12:32:39 +01:00
Djordje Mijovic
bdf05bf8a0 Moving try catch test to semantic tests. 2020-11-13 12:32:35 +01:00
Leonardo
f1846b57a2
Merge pull request #10244 from blishko/this-external-calls
[SMTChecker] Analyzing external calls to `this`
2020-11-13 11:28:34 +00:00
Martin Blicha
5ca7a24896 [SMTChecker] Added support for precise modeling of external calls to this.
Modeling external calls to this, since we can trust these calls.

fixed problem with transaction data not being restored after trusted external call

update to the tests

additional tests

changelog entry

added tests for external getters of this
2020-11-13 11:49:09 +01:00
Alex Beregszaszi
301d7ea39e Add viaIR option to CompilerStack
It also sets the experimental flag in the metadata to true.
2020-11-12 22:34:31 +00:00
chriseth
d744a8fb48 Fail on invalid storage encoding for byte arrays. 2020-11-12 11:12:42 +01:00
chriseth
14ed67ac4b Merge remote-tracking branch 'origin/develop' into breaking 2020-11-11 20:33:40 +01:00
chriseth
44eb63fad0
Merge pull request #10263 from ethereum/fixTryCreateYul
Fix Yul codegen for try with create.
2020-11-11 20:10:54 +01:00
chriseth
571e1e5269
Merge pull request #10266 from ethereum/fixCalldataIndexAccess
Fix calldata index access.
2020-11-11 19:03:19 +01:00
chriseth
8f570a3184 Fix calldata index access. 2020-11-11 18:42:26 +01:00
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