Files
c3c/test/test_suite/enumerations/inline_enums.c3t

39 lines
740 B
Plaintext

// #target: macos-x64
module test;
/*
enum Abc : inline int
{
ABC,
DEF,
}
enum Foo : int (inline String name, int y, int z)
{
ABC = { "Hello", 1, 2 },
DEF = { "World", 2, 3 },
}
fn void main()
{
int a = Abc.DEF;
Foo x = ABC;
Foo y = DEF;
String hello = Foo.ABC;
String world = Foo.DEF;
}
/* expect: test.ll
define void @test.main() #0 {
entry:
%a = alloca i32, align 4
%x = alloca i32, align 4
%y = alloca i32, align 4
%hello = alloca %"char[]", align 8
%world = alloca %"char[]", align 8
store i32 1, ptr %a, align 4
store i32 0, ptr %x, align 4
store i32 1, ptr %y, align 4
store %"char[]" { ptr @.str.2, i64 5 }, ptr %hello, align 8
store %"char[]" { ptr @.str.3, i64 5 }, ptr %world, align 8
ret void
}