contract C {
struct S {
u256 x;
u256 y;
u32 z;
u256[3] a1;
u256[] a2;
}
u32 b = 23;
S[] s;
u32 a = 17;
fn f() {
s.push();
assert(s[0].x == 0);
assert(s[0].y == 0);
assert(s[0].z == 0);
assert(s[0].a1[0] == 0);
assert(s[0].a1[1] == 0);
assert(s[0].a1[2] == 0);
assert(s[0].a2.length == 0);
assert(b == 23);
assert(a == 17);
}
}
// ====
// compileViaYul: also
// ----
// f() ->