// #target: macos-x64 module test; bitstruct Flags : int { bool flag1; } struct Foo { long x; Flags flags; } fn int main(String[] args) { long x; Foo foo = { .x = x, .flags.flag1 = true, }; Flags flags; Foo bar = { .x = x, .flags = flags, }; return 0; } /* #expect: test.ll store ptr %0, ptr %args, align 8 %ptradd = getelementptr inbounds i8, ptr %args, i64 8 store i64 %1, ptr %ptradd, align 8 store i64 0, ptr %x, align 8 store i64 0, ptr %foo, align 8 %ptradd1 = getelementptr inbounds i8, ptr %foo, i64 8 store i32 0, ptr %ptradd1, align 8 %2 = load i64, ptr %x, align 8 store i64 %2, ptr %foo, align 8 %ptradd2 = getelementptr inbounds i8, ptr %foo, i64 8 %3 = load i32, ptr %ptradd2, align 8 %4 = and i32 %3, -2 %5 = or i32 %4, 1 store i32 %5, ptr %ptradd2, align 8 store i32 0, ptr %flags, align 4 store i64 0, ptr %bar, align 8 %ptradd3 = getelementptr inbounds i8, ptr %bar, i64 8 store i32 0, ptr %ptradd3, align 8 %6 = load i64, ptr %x, align 8 store i64 %6, ptr %bar, align 8 %ptradd4 = getelementptr inbounds i8, ptr %bar, i64 8 %7 = load i32, ptr %flags, align 4 store i32 %7, ptr %ptradd4, align 8 ret i32 0