contract C { struct S { u256 p1; u256[][2] a; u32 p2; } fn f(u32 p1, S c) ->(u32, u256, u256, u256, u32) { S m; u32 p2; (p2, m) = (p1, c); m.p1++; m.a[0][1]++; return (p2, m.p1, m.a[0][0], m.a[1][1], m.p2); } } // ==== // compileViaYul: also // ---- // f(u32,(u256,u256[][2],u32)): 55, 0x40, 77, 0x60, 88, 0x40, 0x40, 2, 1, 2 -> 55, 78, 1, 2, 88