Commit Graph

4344 Commits

Author SHA1 Message Date
chriseth
0aa3fb5026
Merge pull request #9014 from ethereum/sol-yul-abidecode
[Sol - Yul] Add support for ABIDecode.
2020-05-27 11:44:13 +02:00
chriseth
f066050ec0 Merge pull request #9024 from ethereum/namableTypes
Disallow non-namable types for inline arrays.
2020-05-27 09:21:07 +02:00
Kamil Śliwak
f574d8ec3a Don't assume that an expression cannot be associated with a function declaration 2020-05-27 00:05:18 +02:00
Alexander Arlt
118cb13476 [Sol - Yul] Add support for ABIDecode. 2020-05-26 13:30:37 -05:00
Mathias Baumann
884e7cbffc Fix ICE when trying to decode too large static arrays 2020-05-26 19:36:18 +02:00
chriseth
d0b6de580f Disallow non-namable types for inline arrays. 2020-05-26 18:17:35 +02:00
chriseth
50b200a5d5
Merge pull request #8797 from ethereum/sol-yul-populating-internal-dispatch-on-demand
[Sol->Yul] Populating internal dispatch on demand
2020-05-26 18:17:05 +02:00
Mathias Baumann
b3cafe4583 Fix ICE by avoiding copyForLocation() on ArraySliceType 2020-05-26 17:27:46 +02:00
Kamil Śliwak
1a2e441bc5 Generate internal dispatch only for functions that might actually get called via pointers
- This also adds support for internal library calls as a side-effect since they'll now be pulled into the internal dispatch automatically.
2020-05-26 17:01:50 +02:00
chriseth
c5dbcc9853
Merge pull request #9018 from ethereum/fixLeave
Fix implementation of leave.
2020-05-26 11:35:47 +02:00
chriseth
33450619b1 Checks for uninitialized access to calldata variables. 2020-05-26 10:51:13 +02:00
chriseth
fb40a8abb8 Test updates. 2020-05-26 10:51:13 +02:00
chriseth
99194b1450 New tests. 2020-05-26 10:51:13 +02:00
chriseth
bd64e537cb Fix implementation of leave. 2020-05-26 10:24:01 +02:00
chriseth
370350da07
Merge pull request #9008 from ethereum/smt_add_test
[SMTChecker] Add test that has an unused mapping
2020-05-25 17:04:54 +02:00
chriseth
6d64095ccf
Merge pull request #8987 from ethereum/sol-yul-bound-functions
[Sol->Yul] Bound functions
2020-05-25 16:53:33 +02:00
chriseth
8e31c345a8
Merge pull request #8978 from ethereum/disturbance_stack
Add proper unipmlemented errors for array copying
2020-05-25 15:34:45 +02:00
Mathias Baumann
7f3d437ffe Fix caret position for errors with utf source 2020-05-25 14:27:03 +02:00
Mathias Baumann
d45bb2aa07 Add proper unipmlemented errors for array copying 2020-05-25 10:48:42 +02:00
Leonardo Alt
0fda5fe077 [SMTChecker] Add test that has an unused mapping 2020-05-25 10:24:48 +02:00
a3d4
a499ef16fa Fix spelling errors 2020-05-25 02:54:37 +02:00
Kamil Śliwak
4a2ce57bed Add support for bound function calls in IR generator 2020-05-20 21:10:20 +02:00
chriseth
32bec6b374
Merge pull request #8800 from ethereum/natspec-bugfix
[BREAKING] NatSpec bugfix
2020-05-20 17:21:15 +02:00
chriseth
ed0f2d463f
Merge pull request #8453 from imapp-pl/configurable-code-size-metric
Configurable CodeSize metric
2020-05-20 17:15:41 +02:00
hrkrshnn
37257548d0 Fixed bug when two empty NatSpec comments led to scanning past EOL 2020-05-20 20:26:02 +05:30
Kamil Śliwak
1fa689e951 [yul-phaser] ProgramCache::calculateTotalCachedCodeSize(): Replace default weights with ones that better correlate with memory usage 2020-05-20 16:47:23 +02:00
Kamil Śliwak
b776021870 [yul-phaser] Command-line options for altering weights used by CodeSize metric 2020-05-20 16:47:23 +02:00
Kamil Śliwak
40dfac7683 [yul-phaser] Require specifying weights for Program::codeSize() 2020-05-20 16:47:23 +02:00
Kamil Śliwak
d199fc537b Add configurable weights to CodeSize metric 2020-05-20 16:47:23 +02:00
Leonardo
56b5f1bb12
Merge pull request #8976 from ethereum/libsmtutil
libsmtutil
2020-05-20 16:14:37 +02:00
chriseth
84092edc5d
Merge pull request #8914 from random-internet-cat/down-with-unique-ptr
Down with unique_ptr!
2020-05-20 13:22:06 +02:00
Leonardo Alt
45eba27424 Rename namespace 2020-05-20 12:55:18 +02:00
Leonardo Alt
802d66244d Do not link unnecessarily 2020-05-20 12:55:18 +02:00
Leonardo Alt
087605ea02 Create libsmtutil 2020-05-20 12:55:18 +02:00
chriseth
30278c4b88
Merge pull request #8985 from ethereum/fixWasmLoops
Fix webassembly loops by adding explicit break at the end.
2020-05-20 11:08:24 +02:00
chriseth
3c71412a47
Merge pull request #8988 from ethereum/isoltest_default_formatting
[isoltest] Improve parameter formatting.
2020-05-20 08:05:33 +02:00
Alexander Arlt
410986e00f [isoltest] Improve parameter formatting. 2020-05-19 19:13:39 -05:00
chriseth
4e9f6c3508 Fix webassembly loops by adding explicit break at the end. 2020-05-19 22:16:16 +02:00
chriseth
22d5caa979
Merge pull request #8532 from aarlt/structured-docs-variables-aarlt
Allow NatSpec comments for state variables
2020-05-19 19:26:35 +02:00
Kamil Śliwak
16e80b7bcd Test case for internal dispatch with functions that have arguments that take up multiple slots 2020-05-19 18:02:14 +02:00
Alexander Arlt
af8bb5fb60 Allow natspec comments on state variables. 2020-05-19 11:01:52 -05:00
Erik Kundt
7d37ed4531 Adds structured docs for variable declarations.
- adds natspec generation for state variables.
- exports structured docs for state variables to JSON.
2020-05-19 11:01:52 -05:00
chriseth
f70ff0dfaa
Merge pull request #8977 from ethereum/mapping-type-error
Error when Mapping type in (non-local) storage is assigned to
2020-05-19 16:52:54 +02:00
Harikrishnan Mulackal
774edd4670 Error when Mapping type in (non-local) storage is assigned to 2020-05-19 19:12:38 +05:30
chriseth
3b27b4347c
Merge pull request #8916 from ethereum/smt_array_push_pop
[SMTChecker] Support array push/pop
2020-05-19 15:41:10 +02:00
chriseth
3211e22045
Merge pull request #8979 from ethereum/doc-json
[Trival] Test: Output JSON AST as array when it involves multiple sources
2020-05-19 15:29:24 +02:00
chriseth
3275243c89
Merge pull request #8898 from mijovic/sol2YulByteArrayPush
[Sol->Yul] Implementing ByteArray push() and pop()
2020-05-19 15:28:01 +02:00
Djordje Mijovic
d235d0c166 [Sol->Yul] Implementing Byte array push() and pop() 2020-05-19 14:47:00 +02:00
Mathias Baumann
5a7217b90e Test: Output JSON AST as array when it involves multiple sources 2020-05-19 14:26:08 +02:00
Leonardo Alt
1ab6ad79d8 Update test expectation 2020-05-18 16:59:31 +02:00
Leonardo Alt
2435ab938c Add verification target for empty pop 2020-05-18 16:35:56 +02:00
Leonardo Alt
d4d26c02e4 Assume that push will not overflow 2020-05-18 16:35:56 +02:00
Jason Cobb
63ad1092cd
Add comment to filenames in boostTest.cpp 2020-05-18 10:24:38 -04:00
chriseth
f92a4f1965 Provide runtime object in Yul mode. 2020-05-18 13:48:23 +02:00
Harikrishnan Mulackal
4a291f8551 Changelog and test 2020-05-18 12:36:01 +05:30
Leonardo Alt
07bb1952a7 Test updates 2020-05-14 23:32:30 +02:00
Leonardo Alt
a0c605aa85 [SMTChecker] Support array length 2020-05-14 23:32:29 +02:00
chriseth
2d1e7d9504
Merge pull request #8931 from random-internet-cat/lazy-init
Add LazyInit
2020-05-14 18:54:19 +02:00
chriseth
7ef114db9a
Merge pull request #8841 from ethereum/sol_yul_ripemd160_ecrecover
[Sol - Yul] Add support for ripemd160 & ecrecover.
2020-05-14 18:43:55 +02:00
Alexander Arlt
91e9d54c71 [Sol - Yul] Add support for ripemd160 & ecrecover. 2020-05-14 10:44:39 -05:00
Jason Cobb
a093962115
Add tests 2020-05-14 11:27:56 -04:00
Jason Cobb
26406e40d0
Add empty LazyInit test suite 2020-05-14 10:49:31 -04:00
Jason Cobb
24dfa89ee7
Use LazyInit for cached contract compilations 2020-05-14 10:36:58 -04:00
chriseth
b71a3f1f1d
Merge pull request #8939 from ethereum/updateZ3
Update z3 to version 4.8.8.
2020-05-14 16:36:49 +02:00
chriseth
1b86f27002
Merge pull request #8935 from ethereum/moveScopesIntoResolver
Move scopes into resolver.
2020-05-14 14:20:58 +02:00
Daniel Kirchner
0303902173 Update smt test expectations. 2020-05-14 14:12:01 +02:00
chriseth
e751a1c23d Move scopes into resolver. 2020-05-14 13:16:47 +02:00
Djordje Mijovic
472fb21ee0 [Sol->Yul] Enabling new bytes(n) 2020-05-14 12:55:14 +02:00
chriseth
6308ca4a22 Binary transform for br and br_if. 2020-05-14 11:30:19 +02:00
chriseth
504b8d29c9
Merge pull request #8907 from ethereum/licenseIdentifier
Check for SPDX license identifiers.
2020-05-14 01:21:24 +02:00
Alex Beregszaszi
c9745ea101 EVMHost: enable support for Berlin 2020-05-13 22:56:11 +01:00
Alex Beregszaszi
7353804252 EVMHost: simplify code using new evmc features 2020-05-13 22:56:11 +01:00
Alex Beregszaszi
098cfd333f Update EVMC to 7.2.0 2020-05-13 22:29:35 +01:00
chriseth
1700bdc4ad
Merge pull request #8925 from ethereum/abiEncodeCalldataSlice
Allow abi encoding array slices without casting.
2020-05-13 18:55:16 +02:00
Daniel Kirchner
97296d8622 Allow ABI encoding for array slices without explicit casts. 2020-05-13 18:20:07 +02:00
Alexander Arlt
af44c05f1a Add new test. 2020-05-13 18:16:59 +02:00
Alexander Arlt
52b9a92ff8 Update existing tests. 2020-05-13 18:16:59 +02:00
chriseth
3872a1f000 Add support for SPDX license identifiers. 2020-05-13 18:16:59 +02:00
Mathias Baumann
820fdd9bf7 Escape backslashes when formatting 2020-05-13 17:08:37 +02:00
chriseth
e9446475bb
Merge pull request #8924 from ethereum/arraySliceBug
Fix array slice bug.
2020-05-13 16:06:28 +02:00
Daniel Kirchner
6f04664cfa Disallow array slicing for arrays with dyanmically encoded base types. 2020-05-13 15:52:22 +02:00
chriseth
aca700497c
Merge pull request #8903 from ethereum/exponentiation-bug
Fix exponentiation bug
2020-05-13 15:49:23 +02:00
Harikrishnan Mulackal
47e9a13e8a Fix exponentiation bug 2020-05-13 13:53:06 +05:30
chriseth
b2122d479f
Merge pull request #8915 from a3d4/partfix-5819-remove-erroroccurred-flag
Remove a dedicated error flag from DeclarationTypeChecker and other classes
2020-05-12 20:18:33 +02:00
a3d4
02d1f8c41a Remove a dedicated error flag from DeclarationTypeChecker 2020-05-12 18:13:17 +02:00
chriseth
7da453014d Fix source location of yul variable declarations without value. 2020-05-12 17:45:19 +02:00
chriseth
efd2f63c2c
Merge pull request #8706 from ethereum/solProtoSkeleton
ossfuzz: Add sol proto fuzzer skeleton
2020-05-12 17:15:23 +02:00
chriseth
901b421bb8
Merge pull request #8910 from ethereum/natspec-return-bug
Bug that ignored return tag when no other devdoc tags were present
2020-05-12 16:47:07 +02:00
Harikrishnan Mulackal
095e17f7f9 Bug that ignored return tag when no other devdoc tags were present 2020-05-12 20:05:22 +05:30
Harikrishnan Mulackal
c29d76f8f2 Test for function with value setting 2020-05-12 15:21:13 +05:30
Bhargava Shastry
596ac018f5 Fuzzer: Add test harness for solidity inheritance protobuf fuzzer
Co-Authored-By: Leonardo <leo@ethereum.org>
2020-05-11 23:56:27 +02:00
Bhargava Shastry
00946f3ea0 ossfuzz: Add sol proto fuzzer skeleton
Co-Authored-By: Leonardo <leo@ethereum.org>
2020-05-11 23:56:27 +02:00
Daniel Kirchner
c2f5a66a79 Implement .creationCode for Sol->Yul. 2020-05-11 18:51:51 +02:00
Daniel Kirchner
3fbde6e782
Merge pull request #8856 from ethereum/implicitConstructorCallvalueCheck
Implicit constructor callvalue check
2020-05-11 18:50:36 +02:00
Daniel Kirchner
79b217dfb3 Callvalue checks for implicit constructors. 2020-05-11 16:14:34 +02:00
chriseth
f1e0aa7a56
Merge pull request #8763 from ethereum/bareCall
IR code generation for call.
2020-05-11 16:06:54 +02:00
chriseth
3312150d7f
Merge pull request #8878 from ethereum/selecting-yul-optimisation-steps-in-strict-assembly-mode
Selecting Yul optimisation steps in strict assembly mode
2020-05-11 16:05:57 +02:00
chriseth
c0bf529236 Support bare calls. 2020-05-11 15:11:46 +02:00
chriseth
4c13ce24f0
Merge pull request #8887 from ethereum/boost-fs
Remove boost::filesystem where it is not needed
2020-05-11 15:09:54 +02:00
chriseth
0248303c15
Merge pull request #8872 from ethereum/int-min-max
implemented type(X).min and type(X).max for all integer types
2020-05-11 15:08:19 +02:00