Files
c3c/test/test_suite2/errors/try_unwrap_using_assert.c3t
2022-07-20 12:22:03 +02:00

41 lines
1015 B
C

// #target: macos-x64
module test;
extern fn int! maybe();
fn int tester(int n)
{
int! num = maybe();
assert(try num, "Hello");
int x = num;
return num;
}
// #expect: test.ll
define i32 @test_tester(i32 %0) #0 {
entry:
%num = alloca i32, align 4
%num.f = alloca i64, align 8
%retparam = alloca i32, align 4
%x = alloca i32, align 4
%1 = call i64 @maybe(ptr %retparam)
%not_err = icmp eq i64 %1, 0
br i1 %not_err, label %after.errcheck, label %error
error: ; preds = %entry
store i64 %1, ptr %num.f, align 8
br label %after_assign
after.errcheck: ; preds = %entry
%2 = load i32, ptr %retparam, align 4
store i32 %2, ptr %num, align 4
store i64 0, ptr %num.f, align 8
br label %after_assign
after_assign: ; preds = %after.errcheck, %error
%3 = load i32, ptr %num, align 4
store i32 %3, ptr %x, align 4
%4 = load i32, ptr %num, align 4
ret i32 %4
}