solidity/test/libsolidity/semanticTests/array/push/array_push_struct.sol
2021-04-22 18:19:47 +02:00

28 lines
561 B
Solidity

contract c {
struct S {
uint16 a;
uint16 b;
uint16[3] c;
uint16[] d;
}
S[] data;
function test() public returns (uint16, uint16, uint16, uint16) {
S memory s;
s.a = 2;
s.b = 3;
s.c[2] = 4;
s.d = new uint16[](4);
s.d[2] = 5;
data.push(s);
return (data[0].a, data[0].b, data[0].c[2], data[0].d[2]);
}
}
// ====
// compileViaYul: also
// ----
// test() -> 2, 3, 4, 5
// gas irOptimized: 146270
// gas legacy: 190684
// gas legacyOptimized: 188256