mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Bug list entry, changelog entry and tests.
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
pragma abicoder v2;
|
||||
|
||||
contract C {
|
||||
function f(uint[] calldata) public {}
|
||||
}
|
||||
// ====
|
||||
// revertStrings: debug
|
||||
// compileViaYul: also
|
||||
// ----
|
||||
// f(uint256[]): 0x20, 0 ->
|
||||
// f(uint256[]): 0x20, 1 -> FAILURE, hex"08c379a0", 0x20, 0x2b, "ABI decoding: invalid calldata a", "rray stride"
|
||||
// f(uint256[]): 0x20, 2 -> FAILURE, hex"08c379a0", 0x20, 0x2b, "ABI decoding: invalid calldata a", "rray stride"
|
||||
@@ -0,0 +1,10 @@
|
||||
contract C {
|
||||
function f(uint[] calldata) public {}
|
||||
}
|
||||
// ====
|
||||
// compileViaYul: also
|
||||
// ----
|
||||
// f(uint256[]): 0x20, 0 ->
|
||||
// f(uint256[]): 0x20, 1 -> FAILURE
|
||||
// f(uint256[]): 0x20, 2 -> FAILURE
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
pragma abicoder v2;
|
||||
|
||||
contract C {
|
||||
function f(uint[3][] calldata a) public {
|
||||
abi.encode(a);
|
||||
}
|
||||
function f(uint[][3] calldata a) public {
|
||||
abi.encode(a);
|
||||
}
|
||||
function f(uint[2][2] calldata a) public {
|
||||
abi.encode(a);
|
||||
}
|
||||
}
|
||||
// ====
|
||||
// compileViaYul: also
|
||||
// ----
|
||||
// f(uint256[3][]): 0x20, 1, 0x01 -> FAILURE
|
||||
// f(uint256[3][]): 0x20, 1, 0x01, 0x02 -> FAILURE
|
||||
// f(uint256[3][]): 0x20, 1, 0x01, 0x02, 0x03 ->
|
||||
// f(uint256[][3]): 0x20, 0x60, 0x60, 0x60, 3, 0x01 -> FAILURE
|
||||
// f(uint256[][3]): 0x20, 0x60, 0x60, 0x60, 3, 0x01, 0x02 -> FAILURE
|
||||
// f(uint256[][3]): 0x20, 0x60, 0x60, 0x60, 3, 0x01, 0x02, 0x03 ->
|
||||
// f(uint256[2][2]): 0x01 -> FAILURE
|
||||
// f(uint256[2][2]): 0x01, 0x02 -> FAILURE
|
||||
// f(uint256[2][2]): 0x01, 0x02, 0x03 -> FAILURE
|
||||
// f(uint256[2][2]): 0x01, 0x02, 0x03, 0x04 ->
|
||||
// f(uint256[2][2]): 0x01, 0x02, 0x03, 0x04, 0x05 ->
|
||||
Reference in New Issue
Block a user