Files
c3c/test/test_suite14/errors/try_unwrap_using_assert.c3t
2023-01-11 18:00:08 +01:00

41 lines
1.0 KiB
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(i32* %retparam)
%not_err = icmp eq i64 %1, 0
br i1 %not_err, label %after_check, label %assign_optional
assign_optional: ; preds = %entry
store i64 %1, i64* %num.f, align 8
br label %after_assign
after_check: ; preds = %entry
%2 = load i32, i32* %retparam, align 4
store i32 %2, i32* %num, align 4
store i64 0, i64* %num.f, align 8
br label %after_assign
after_assign: ; preds = %after_check, %assign_optional
%3 = load i32, i32* %num, align 4
store i32 %3, i32* %x, align 4
%4 = load i32, i32* %num, align 4
ret i32 %4
}