// #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.errcheck, label %error error: ; preds = %entry store i64 %1, i64* %num.f, align 8 br label %after_assign after.errcheck: ; 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.errcheck, %error %3 = load i32, i32* %num, align 4 store i32 %3, i32* %x, align 4 %4 = load i32, i32* %num, align 4 ret i32 %4 }