solidity/test/libsolidity/syntaxTests/viewPureChecker/inline_assembly_instructions_allowed_pure.sol
Matheus Aguiar 35661479b6 Revert "Disallow RETURNDATASIZE and RETURNDATACOPY in inline assembly blocks in pure functions"
This reverts commit f567eb1fb2.

Correcting Bugfixes section of Changelog.
2022-05-13 08:35:21 -03:00

91 lines
2.5 KiB
Solidity

contract C {
function f() public pure {
assembly {
stop()
pop(add(0, 1))
pop(sub(0, 1))
pop(mul(0, 1))
pop(div(0, 1))
pop(sdiv(0, 1))
pop(mod(0, 1))
pop(smod(0, 1))
pop(exp(0, 1))
pop(not(0))
pop(lt(0, 1))
pop(gt(0, 1))
pop(slt(0, 1))
pop(sgt(0, 1))
pop(eq(0, 1))
pop(iszero(0))
pop(and(0, 1))
pop(or(0, 1))
pop(xor(0, 1))
pop(byte(0, 1))
pop(shl(0, 1))
pop(shr(0, 1))
pop(sar(0, 1))
pop(addmod(0, 1, 2))
pop(mulmod(0, 1, 2))
pop(signextend(0, 1))
pop(keccak256(0, 1))
pop(0)
pop(mload(0))
mstore(0, 1)
mstore8(0, 1)
//pop(sload(0))
//sstore(0, 1)
//pop(gas())
//pop(address())
//pop(balance(0))
//pop(selfbalance())
//pop(caller())
//pop(callvalue())
pop(calldataload(0))
pop(calldatasize())
calldatacopy(0, 1, 2)
pop(codesize())
codecopy(0, 1, 2)
//pop(extcodesize(0))
//extcodecopy(0, 1, 2, 3)
pop(returndatasize())
returndatacopy(0, 1, 2)
//pop(extcodehash(0))
//pop(create(0, 1, 2))
//pop(create2(0, 1, 2, 3))
//pop(call(0, 1, 2, 3, 4, 5, 6))
//pop(callcode(0, 1, 2, 3, 4, 5, 6))
//pop(delegatecall(0, 1, 2, 3, 4, 5))
//pop(staticcall(0, 1, 2, 3, 4, 5))
return(0, 1)
revert(0, 1)
//selfdestruct(0)
invalid()
//log0(0, 1)
//log1(0, 1, 2)
//log2(0, 1, 2, 3)
//log3(0, 1, 2, 3, 4)
//log4(0, 1, 2, 3, 4, 5)
//pop(chainid())
//pop(basefee())
//pop(origin())
//pop(gasprice())
//pop(blockhash(0))
//pop(coinbase())
//pop(timestamp())
//pop(number())
//pop(difficulty())
//pop(gaslimit())
// NOTE: msize() is allowed only with optimizer disabled
//pop(msize())
//pop(pc())
}
}
}
// ====
// EVMVersion: >=london
// ----
// Warning 5740: (94-1755): Unreachable code.
// Warning 5740: (1768-1780): Unreachable code.
// Warning 5740: (1823-1832): Unreachable code.