Commit Graph

19120 Commits

Author SHA1 Message Date
hrkrshnn
2fb191175b Disallow some explicit conversions to address payable
The following explicit conversions are disallowed:

1. uint160 -> address payable
2. bytes20 -> address payable
3. literals -> address payable (payable(0) is an exception)
2020-12-15 15:01:40 +01:00
chriseth
4e86390e40
Merge pull request #10590 from ethereum/deposit-test
Include the eth2 deposit contract as an external test
2020-12-15 14:57:38 +01:00
Bhargava Shastry
31107e0947
Merge pull request #10594 from ethereum/add-sanitized-gmp-to-ossfuzz-docker
ossfuzz docker: Add sanitized build of gmp library that replaces syst…
2020-12-15 14:53:01 +01:00
Bhargava Shastry
aa26adc323 ossfuzz: Update ossfuzz docker image that now contains sanitized libgmp 2020-12-15 14:33:04 +01:00
Bhargava Shastry
e0e30fc600
Merge pull request #10592 from ethereum/abiv2-isabelle-test-values-fix-bugs
Abiv2 isabelle fuzzing
2020-12-15 14:29:20 +01:00
chriseth
ffaf40950a
Merge pull request #10605 from ethereum/develop
Merge develop into breaking.
2020-12-15 14:01:01 +01:00
chriseth
5f59a949d7
Merge pull request #10598 from ethereum/disable-byte
[BREAKING] Disable the type `byte`
2020-12-15 14:00:17 +01:00
chriseth
2a54079d41
Merge pull request #10575 from ethereum/calldataArraySlices
Conversion of calldata array slices to memory
2020-12-15 12:21:33 +01:00
Leonardo
2552a9b7b0
Merge pull request #10601 from blishko/smt-fix-constructor-recursive-struct
[SMTChecker] Fix internal error on constructor of a recursive struct
2020-12-15 12:15:16 +01:00
Bhargava Shastry
3439e927e5 ossfuzz docker: Add sanitized build of gmp library that replaces system installed lib 2020-12-15 12:11:42 +01:00
Bhargava Shastry
b273e52628 Abiv2 fuzzer: Enable differential fuzzing and remove support for string coding
co-authored-by: Leonardo <leo@ethereum.org>
2020-12-15 11:13:10 +01:00
Bhargava Shastry
39f1893956 Fix integer overflow due to large unsigned cpp_int 2020-12-15 11:12:51 +01:00
Martin Blicha
e2c27b8ea4 [SMTChecker] Fix internal error on constructor of a recursive struct 2020-12-15 09:53:52 +01:00
Djordje Mijovic
64f0120622 Change assertions to align to TypeChecker. 2020-12-15 09:21:50 +01:00
Djordje Mijovic
d479c98920 Adding tests for conversion of calldata slices to memory and storage and fixing syntax tests. 2020-12-15 09:21:47 +01:00
Leonardo
d83ce0bcdd
Merge pull request #10599 from blishko/smt-inc-dec-push-fix
[SMTChecker] Fix internal error when increment/decrement is applied on a result of push().
2020-12-14 23:52:54 +01:00
Martin Blicha
71f835b71b [SMTChecker] Fixed internal error when increment/decrement is applied on a result of push(). 2020-12-14 22:52:44 +01:00
Djordje Mijovic
8aa4568b10 [Sol->Yul] Implementing conversion from calldata slices to memory arrays.
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2020-12-14 22:21:37 +01:00
Djordje Mijovic
b99a74fb34 Implementing conversion from calldata slices to memory arrays. 2020-12-14 22:21:37 +01:00
Djordje Mijovic
0efd52a38e Allowing implicit conversion from calldata slice to memory and storage array types. 2020-12-14 22:21:37 +01:00
Alex Beregszaszi
edbdff8619 Update tests 2020-12-14 19:32:31 +00:00
Alex Beregszaszi
15237c8404 Disable the type byte 2020-12-14 19:18:25 +00:00
chriseth
271a17d908
Merge pull request #10496 from ethereum/address-payable
[BREAKING] tx.origin, msg.sender and address(literal) are non-payable addresses
2020-12-14 20:16:52 +01:00
Harikrishnan Mulackal
90a0bbefa3
Merge pull request #10593 from ethereum/someMoreTests
Some more tests for overflow.
2020-12-14 19:41:10 +01:00
Leonardo
2ca70bd71a
Merge pull request #10597 from blishko/smt-fix-abstract-modifier
[SMTChecker] Fix internal error on abstract modifier
2020-12-14 19:34:44 +01:00
chriseth
9c3690c246 Some more tests for overflow. 2020-12-14 19:12:48 +01:00
hrkrshnn
7438c4dc16 Tests after making all explicit address conversions as non-payable 2020-12-14 18:46:01 +01:00
hrkrshnn
f30c7cbac8 All explicit address conversions return a non-payable address 2020-12-14 18:41:27 +01:00
Martin Blicha
103fa3b7eb [SMTChecker] Fix internal error on abstract modifier 2020-12-14 18:23:25 +01:00
Leonardo
e21be30df4
Merge pull request #10588 from blishko/smt-push-bytes-fix
[SMTChecker] Fix internal error on bytes.push on the LHS of an assignment
2020-12-14 18:19:35 +01:00
Martin Blicha
27402781c4 [SMTChecker] Fixed crash on push to bytes on lhs of an assignment 2020-12-14 17:40:45 +01:00
Leonardo
ccf1626f0d
Merge pull request #10581 from blishko/issue-10524
[SMTChecker] Fix handling of function calls where the function identifier is nested in a tuple.
2020-12-14 17:20:18 +01:00
hrkrshnn
88c99a7538 Tests/Docs: changing type of msg.sender and tx.origin into address
And also making the type of address(literal) as non-payable address.
2020-12-14 16:55:48 +01:00
hrkrshnn
e1a95cfd42 Disallow conversions from literals to payable address
To get a payable address, one has to go through address. For example, `payable(address(0))`.
2020-12-14 16:55:48 +01:00
hrkrshnn
9bd778d728 Make msg.sender and tx.origin have type address
Previously both of them had type address payable. The idea is that anything that is not know to be
payable should be non-payable.
2020-12-14 16:55:48 +01:00
Martin Blicha
0be325dc0d [SMTChecker] Fix handling of function calls where the function identifier is nested in a tuple. 2020-12-14 16:19:24 +01:00
chriseth
d257ab7141 Merge remote-tracking branch 'origin/develop' into breaking 2020-12-14 16:05:12 +01:00
Alex Beregszaszi
34cab95446 Do not insert SPDX line if it is already present (in semantic tests) 2020-12-14 14:25:58 +00:00
chriseth
e3b009d6a7
Merge pull request #10580 from ethereum/sized-types
Disallow leading zeroes in sized-types
2020-12-14 14:44:06 +01:00
chriseth
20ed816c1b
Merge pull request #10589 from ethereum/fixBuildBreaking
Fix breaking.
2020-12-14 14:41:01 +01:00
chriseth
0dd2f1edbe Update counter-examples. 2020-12-14 14:21:35 +01:00
chriseth
b03d110528 Ignore "no version found" check for pragmas containing "99". 2020-12-14 14:18:03 +01:00
chriseth
843e37b6e6 Do not warn about unreachable break. 2020-12-14 14:18:03 +01:00
chriseth
e1e1337aca Move functions into anonymous namespace. 2020-12-14 14:18:03 +01:00
chriseth
6fff408d82 Fix lexer rules wrt leading zeros. 2020-12-14 14:17:16 +01:00
Alex Beregszaszi
3a7a0e4256 Add test cases for the deposit contract 2020-12-14 13:11:57 +00:00
Alex Beregszaszi
b97a12c299 Initial import of syntaxTests/externalContracts/deposit_contract.sol
Imported from https://github.com/axic/eth2-deposit-contract/tree/r2
2020-12-14 12:19:07 +00:00
Alex Beregszaszi
aa042ccb87 Disallow leading zeroes in sized-types
Also avoid using boost::lexical_cast for parseSize.
2020-12-14 11:40:14 +00:00
Alex Beregszaszi
4bffd040e2 Add tests for weirdly sized types
e.g. bytes00001
2020-12-14 11:40:11 +00:00
chriseth
28374447d2
Merge pull request #10582 from ethereum/addr-literal
Fix crash with oversized address literals
2020-12-14 12:14:28 +01:00