mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Tests for memory in external functions.
This commit is contained in:
parent
375cb09341
commit
c0adf2bb4c
@ -0,0 +1,18 @@
|
||||
contract C {
|
||||
function f(bytes memory a, bytes calldata b, uint[] memory c)
|
||||
external
|
||||
pure
|
||||
returns (uint, byte, uint, byte, uint, uint)
|
||||
{
|
||||
return (a.length, a[1], b.length, b[2], c.length, c[3]);
|
||||
}
|
||||
function g() public returns (uint, byte, uint, byte, uint, uint) {
|
||||
uint[] memory x = new uint[](4);
|
||||
x[3] = 7;
|
||||
return this.f("abc", "def", x);
|
||||
}
|
||||
}
|
||||
// ====
|
||||
// compileViaYul: also
|
||||
// ----
|
||||
// g() -> 3, 0x6200000000000000000000000000000000000000000000000000000000000000, 3, 0x6600000000000000000000000000000000000000000000000000000000000000, 4, 7
|
@ -0,0 +1,20 @@
|
||||
pragma experimental ABIEncoderV2;
|
||||
|
||||
contract C {
|
||||
function f(bytes memory a, bytes calldata b, uint[] memory c)
|
||||
external
|
||||
pure
|
||||
returns (uint, byte, uint, byte, uint, uint)
|
||||
{
|
||||
return (a.length, a[1], b.length, b[2], c.length, c[3]);
|
||||
}
|
||||
function g() public returns (uint, byte, uint, byte, uint, uint) {
|
||||
uint[] memory x = new uint[](4);
|
||||
x[3] = 7;
|
||||
return this.f("abc", "def", x);
|
||||
}
|
||||
}
|
||||
// ====
|
||||
// compileViaYul: also
|
||||
// ----
|
||||
// g() -> 3, 0x6200000000000000000000000000000000000000000000000000000000000000, 3, 0x6600000000000000000000000000000000000000000000000000000000000000, 4, 7
|
Loading…
Reference in New Issue
Block a user