mirror of
https://github.com/c3lang/c3c.git
synced 2026-02-27 20:11:17 +00:00
35 lines
758 B
Plaintext
35 lines
758 B
Plaintext
// #target: x64_darwin
|
|
|
|
module foo;
|
|
|
|
errtype Blurg;
|
|
|
|
func void main()
|
|
{
|
|
static int! x = 120;
|
|
int! i = Blurg!;
|
|
}
|
|
|
|
// #expect: foo.ll
|
|
|
|
%error_union = type { i64, i64 }
|
|
%Blurg = type { [8 x i8] }
|
|
|
|
@Blurg = linkonce_odr constant i8 1
|
|
@main.x.f = hidden global %error_union zeroinitializer, align 8
|
|
@main.x = hidden global i32 120, align 4
|
|
|
|
define void @main()
|
|
%i = alloca i32, align 4
|
|
%i.f = alloca %error_union, align 8
|
|
%literal = alloca %Blurg, align 8
|
|
%0 = bitcast %Blurg* %literal to i8*
|
|
call void @llvm.memset.p0i8.i64(i8* align 8 %0, i8 0, i64 8, i1 false)
|
|
%1 = load %Blurg, %Blurg* %literal, align 8
|
|
%2 = bitcast %error_union* %i.f to %Blurg*
|
|
store %Blurg %1, %Blurg* %2, align 1
|
|
br label %after_assign
|
|
|
|
after_assign:
|
|
ret void
|