Files
c3c/test/test_suite/statements/defer_do_while.c3t

38 lines
793 B
Plaintext

// #target: macos-x64
module foo;
fn void test()
{
int a;
do
{
a++;
defer a++;
} while(a < 10);
}
/* #expect: foo.ll
define void @foo.test() #0 {
entry:
%a = alloca i32, align 4
store i32 0, ptr %a, align 4
br label %loop.body
loop.body: ; preds = %loop.cond, %entry
%0 = load i32, ptr %a, align 4
%add = add i32 %0, 1
store i32 %add, ptr %a, align 4
%1 = load i32, ptr %a, align 4
%add1 = add i32 %1, 1
store i32 %add1, ptr %a, align 4
br label %loop.cond
loop.cond: ; preds = %loop.body
%2 = load i32, ptr %a, align 4
%lt = icmp slt i32 %2, 10
br i1 %lt, label %loop.body, label %loop.exit
loop.exit: ; preds = %loop.cond
ret void
}