mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
41ce3feb0a
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`)
20 lines
381 B
Solidity
20 lines
381 B
Solidity
// Ok
|
|
contract push0 {}
|
|
|
|
contract A {
|
|
// Ok, warning about shadowing
|
|
function push0() external {}
|
|
}
|
|
|
|
contract C {
|
|
function f() external {
|
|
assembly {
|
|
// Not okay
|
|
push0()
|
|
}
|
|
}
|
|
}
|
|
// ----
|
|
// Warning 2519: (77-105): This declaration shadows an existing declaration.
|
|
// DeclarationError 4619: (205-210): Function "push0" not found.
|