module test; macro int[2] test(#abc) @safemacro { return #abc; } fn void main() { int[2] x = (int[2]) { 1, 2 }; int[2] y = test({ 2, 3 }); int[2] z = test({ [0] = 1 }); } /* #expect: test.ll @.__const = private unnamed_addr constant [2 x i32] [i32 1, i32 2], align 4 @.__const.1 = private unnamed_addr constant [2 x i32] [i32 2, i32 3], align 4 @.__const.2 = private unnamed_addr constant [2 x i32] [i32 1, i32 0], align 4 call void @llvm.memcpy.p0.p0.i32(ptr align 4 %x, ptr align 4 @.__const, i32 8, i1 false) call void @llvm.memcpy.p0.p0.i32(ptr align 4 %y, ptr align 4 @.__const.1, i32 8, i1 false) call void @llvm.memcpy.p0.p0.i32(ptr align 4 %z, ptr align 4 @.__const.2, i32 8, i1 false)