mirror of
https://github.com/c3lang/c3c.git
synced 2026-02-27 12:01:16 +00:00
39 lines
853 B
C
39 lines
853 B
C
// #target: macos-x64
|
|
module foo;
|
|
extern fn void printf(char*,...);
|
|
|
|
fn void main()
|
|
{
|
|
defer printf("On exit\n");
|
|
{|
|
|
defer printf("Baz\n");
|
|
defer {|
|
|
defer printf("Hello!\n");
|
|
defer printf("1\n");
|
|
if (true) return 12;
|
|
defer printf("2\n");
|
|
return 34;
|
|
|};
|
|
|};
|
|
defer printf("On 2\n");
|
|
}
|
|
|
|
/* #expect: foo.ll
|
|
|
|
define void @foo.main() #0 {
|
|
entry:
|
|
%blockret = alloca i32, align 4
|
|
br label %if.then
|
|
if.then: ; preds = %entry
|
|
store i32 12, ptr %blockret, align 4
|
|
call void (ptr, ...) @printf(ptr @.str)
|
|
call void (ptr, ...) @printf(ptr @.str.1)
|
|
br label %expr_block.exit
|
|
expr_block.exit: ; preds = %if.then
|
|
call void (ptr, ...) @printf(ptr @.str.5)
|
|
call void (ptr, ...) @printf(ptr @.str.6)
|
|
call void (ptr, ...) @printf(ptr @.str.7)
|
|
ret void
|
|
}
|
|
|