solidity/test/libsolidity/semanticTests/viaYul/array_memory_as_parameter.sol

27 lines
667 B
Solidity

contract C {
function test(uint256 len, uint idx) public returns (uint256)
{
uint[] memory array = new uint[](len);
uint result = receiver(array, idx);
for (uint256 i = 0; i < array.length; i++)
require(array[i] == i + 1);
return result;
}
function receiver(uint[] memory array, uint idx) public returns (uint256)
{
for (uint256 i = 0; i < array.length; i++)
array[i] = i + 1;
return array[idx];
}
}
// ====
// compileViaYul: also
// ----
// test(uint256,uint256): 0, 0 -> FAILURE, hex"4e487b71", 0x32
// test(uint256,uint256): 1, 0 -> 1
// test(uint256,uint256): 10, 5 -> 6
// test(uint256,uint256): 10, 50 -> FAILURE, hex"4e487b71", 0x32