contract C { struct S { u256 a; u64 b; u256 c; } fn f(S[3] c) -> (u256, u64, u256) { S[3] m = c; return (m[2].a, m[1].b, m[0].c); } fn g(S[] c) -> (u256, u64, u256) { S[] m = c; return (m[2].a, m[1].b, m[0].c); } } // ==== // compileViaYul: also // ---- // f((u256,u64,u256)[3]): 0, 0, 12, 0, 11, 0, 10, 0, 0 -> 10, 11, 12 // g((u256,u64,u256)[]): 0x20, 3, 0, 0, 12, 0, 11, 0, 10, 0, 0 -> 10, 11, 12