Commit Graph

577 Commits

Author SHA1 Message Date
hrkrshnn
41ce3feb0a test: some tests for push0
1. `push0_disallowed.yul`: checks if `push0()` is a valid builtin in strict Yul
2. `push0_disallowed.sol`: checks if `push0()` is a valid builtin in inline assembly
3. `push0.sol`: simple semantic test that returns 0
4. `evmone_support.sol`: tests if push0 works properly in evmone
5. Updated some bytecode too large tests to use `shanghai` as version
6. Updated various tests where `push1 0` was hardcoded in different forms / expectations on bytecode
size (`Assembler.cpp`, `GasCosts.cpp`, `SolidityCompiler.cpp`, `SolidityExpressionCompiler.cpp`)
2023-04-12 00:10:24 +02:00
Leo Alt
aacbe72079 group unsupported warnings 2023-03-15 17:06:06 +01:00
Leo Alt
21c0f78650 Report safe properties in BMC and CHC 2023-03-09 14:59:32 +01:00
Bhargava Shastry
1ac3abfbb7 Strict assembly fuzzer: Change optimization setting from full to minimal. 2023-02-24 22:42:07 +01:00
Daniel
665bf29a84
Merge pull request #12958 from ethereum/yul-fuzzer-bound-memory-accesses
Yul grammar generator: Bound memory accesses.
2023-02-07 15:47:20 +01:00
Leo Alt
8d91ccf028 [SMTChecker] Add a new trusted mode which assumes that code that is
available at compile time is trusted.
2023-02-06 17:02:33 +01:00
Bhargava Shastry
5c6e12b2c0 Update existing and add new test cases. 2023-02-02 11:40:39 +01:00
Bhargava Shastry
f8880cad82 Yul grammar generator: Bound memory accesses. 2023-02-02 08:10:53 +01:00
Bhargava Shastry
564cf85725 Yul proto converter: Output prevrandao for evm versions >= paris 2023-01-30 09:19:33 +01:00
Rodrigo Q. Saramago
ef6ff2f055
Adds support for the EVM version "Paris".
Deprecates `block.difficulty` and disallow `difficulty()` in inline assembly for EVM versions >= paris.
The change is due to the renaming introduced by EIP-4399 (see: https://eips.ethereum.org/EIPS/eip-4399).
Introduces `block.prevrandao` in Solidity and `prevrandao()` in inline assembly for EVM versions >= paris.

Co-authored-by: Alex Beregszaszi <alex@rtfs.hu>
Co-authored-by: Daniel <daniel@ekpyron.org>
Co-authored-by: matheusaaguiar <95899911+matheusaaguiar@users.noreply.github.com>
Co-authored-by: Nikola Matić <nikola.matic@ethereum.org>
2023-01-23 18:50:36 +00:00
Pierre Grimaud
b314e1b37d
docs: fix typos 2022-12-25 22:39:50 +01:00
Daniel
851cc09742
Merge pull request #13516 from ethereum/fix-yul-interpreter-memory-access
Fix memory expansion semantics in the yul interpreter.
2022-12-01 15:42:41 +01:00
Daniel Kirchner
bf26d3be5a Add experimental EOF options for CLI and Standard JSON.
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2022-11-23 19:53:44 +01:00
Alex Beregszaszi
eb8af2caec Add basic support for the EVM version Paris
This mostly means testing with evmone, but instruction renaming of difficulty->prevrandao is omitted.
2022-11-21 14:56:46 +01:00
Bhargava Shastry
2c27405cbb Fix zero size memory expansion semantics in the yul interpreter. 2022-11-21 11:53:42 +01:00
Alex Beregszaszi
5df92a374b Update EVMHost to match EVMC10 changes 2022-11-09 21:27:40 +01:00
Daniel
05217fa8be
Merge pull request #13633 from ethereum/solc-return-codes
[solc] Exit code 2 for exceptions.
2022-11-01 14:18:41 +01:00
Daniel
bbaf8a4eb4
Merge pull request #13283 from ethereum/yulDebugger
Yul Debugger
2022-11-01 14:04:56 +01:00
Alexander Arlt
5b9096a381 [solc] Exit code 2 for exceptions. 2022-11-01 12:56:05 +01:00
Bhargava Shastry
898fbe9335 Silence integer precision loss warning for protobuf fuzzers. 2022-10-12 12:10:43 +02:00
Alex Beregszaszi
5f8b48793c
Merge pull request #13571 from ethereum/explicit-fixedhash
Drop implicit alignment argument from FixedHash (and improve FunctionSelector helpers)
2022-09-27 22:30:34 +02:00
Alex Beregszaszi
2a41295d03 Drop implicit alignment argument from FixedHash 2022-09-27 17:58:32 +02:00
Alex Beregszaszi
0f484ec93b Replace use of boost::algorithm::all_of with ranges::all_of 2022-09-27 03:33:13 +02:00
Alex Beregszaszi
8230022e18 Remove unused include of boost/variant 2022-09-27 03:27:37 +02:00
nishant-sachdeva
eafd7218b7 refactored struct message to use std::variant for _typeOrSeverity 2022-09-20 19:20:43 +05:30
nishant-sachdeva
c8011d8719 Cleaning up helpers around errors 2022-09-19 10:51:14 +05:30
Marenz
692a99f891 yulRun: Add recursion protection 2022-09-14 11:40:23 +02:00
Marenz
d10d967008 yulRun: Fix unexpected return value for call* instructions and add tests 2022-09-14 11:40:08 +02:00
Marenz
b8699e7687 YulRunner: Add support for interactive inspection of the state 2022-09-14 11:40:02 +02:00
Marenz
4b69b5fdc1 YulRunner: Add support for external calls to the same contract 2022-09-14 11:40:02 +02:00
Marenz
53b67334c5 YulRunner: Add support for memoryguard() and literal parameters 2022-09-14 11:40:02 +02:00
Bhargava Shastry
69d9869d21 Fix create2 memory access in yul interpreter. 2022-09-12 09:53:31 +02:00
Bhargava Shastry
e3ed29d3b3 Permit multiple indirections in coding calldata to and from memory/calldata. 2022-08-12 09:33:06 +02:00
Bhargava Shastry
53947404e4 Place calldata to calldata coder sanity checks.
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2022-08-08 11:04:51 +02:00
ywon0925
b78960c604 Add a Catch to handle exception 2022-06-22 21:14:42 +09:00
Daniel Kirchner
e93ad30e43 Remove obsolete enforce-via-yul logic and CI run. 2022-05-19 20:23:28 +02:00
Joshua Quinones
e1a59397c6 Renamed AssemblyStack to YulStack
All files, references, variables, comments, etc. were renamed to YulStack.
2022-04-08 20:28:55 +02:00
Kamil Śliwak
b3048ccf07 Use EXIT_FAILURE and EXIT_SUCCESS constants in exit() and when returning from main() 2022-04-06 22:27:08 +02:00
Kamil Śliwak
cf6704ae06 isoltest: Do not return an error code from --help 2022-04-06 22:26:21 +02:00
Kamil Śliwak
ed8403f456 isoltest: Handle parsing errors differently from unexpected exceptions 2022-04-06 22:26:21 +02:00
Bhargava Shastry
e0d9dec874 Permit control flow mutations in global scope of a Yul program. 2022-03-14 15:04:32 +01:00
Daniel Kirchner
ce0a3e93f2 Store whether an evmasm Assembly is creation code. 2022-03-09 17:42:29 +01:00
chriseth
77c40cd2af
Merge pull request #12740 from ethereum/remove-locale-dependent-operations
Replace all locale-dependent operations with locale-agnostic counterparts
2022-03-07 17:56:58 +01:00
wechman
52dfccca98 Replace all locale-dependent operations with locale-agnostic counterparts 2022-03-07 17:23:08 +01:00
Daniel Kirchner
6b6e163be5 Tests. 2022-03-02 16:42:28 +01:00
Marenz
46075d04d9 Include used events in `--hashes` output 2022-02-09 13:50:42 +01:00
Marenz
3e7c68d9b0 Merge identifier query methods into one 2022-02-08 17:44:21 +01:00
Bhargava Shastry
4bcd69e7bd Code transform fuzzer: Only test against latest EVM version. 2022-01-27 14:49:44 +01:00
Bhargava Shastry
cfda0e41ce Filter log statements and remove gas comparison. 2022-01-26 15:58:12 +01:00
chriseth
679f73c1e0
Merge pull request #12276 from ethereum/fuzz-RSE
Yul interpreter: Changes required before merging Redundant store eliminator
2022-01-05 11:23:51 +01:00