mirror of
https://github.com/c3lang/c3c.git
synced 2026-02-27 12:01:16 +00:00
35 lines
593 B
Plaintext
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
|