// #target: macos-x64 module foo; struct Bar { struct { int y; } int ufe; int[*] z; } fn void test(Bar b) { b.z[1]; } /* #expect: foo.ll %Bar = type { %anon, i32, [0 x i32] } %anon = type { i32 } define void @foo.test(%Bar* byval(%Bar) align 8 %0) #0 { entry: %b = alloca %Bar, align 4 %1 = bitcast %Bar* %b to i8* %2 = bitcast %Bar* %0 to i8* call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %1, i8* align 8 %2, i32 8, i1 false) %3 = getelementptr inbounds %Bar, %Bar* %b, i32 0, i32 2 %4 = getelementptr inbounds [0 x i32], [0 x i32]* %3, i64 0, i64 1 ret void }