Files
c3c/test/test_suite/cast/cast_bitstruct_etc.c3t
2025-02-18 18:53:30 +01:00

35 lines
593 B
Plaintext

// #target: macos-x64
module test;
fn void main()
{
Enum e = ENUM1;
ushort x = (ushort)(Foo){ .x = e };
Foo z = (Foo)(ushort)(Foo) { .x = e };
}
enum Enum : char
{
ENUM1,
}
bitstruct Foo : ushort
{
Enum x : 0..7;
}
/* #expect: test.ll
%e = alloca i8, align 1
%x = alloca i16, align 2
%z = alloca i16, align 2
store i8 0, ptr %e, align 1
%0 = load i8, ptr %e, align 1
%zext = zext i8 %0 to i16
%1 = and i16 %zext, 255
store i16 %1, ptr %x, align 2
%2 = load i8, ptr %e, align 1
%zext1 = zext i8 %2 to i16
%3 = and i16 %zext1, 255
store i16 %3, ptr %z, align 2