Files
c3c/test/test_suite/abi/test_sret.c3t
2023-01-11 18:00:08 +01:00

33 lines
550 B
C

// #target: macos-x64
struct Abc {
long a;
long b;
long c;
long d;
long e;
}
extern fn Abc foo1();
extern fn Abc foo2();
fn void bar() {
Abc dummy1 = foo1();
Abc dummy2 = foo2();
}
/* #expect: test_sret.ll
declare void @foo1(ptr noalias sret(%Abc) align 8) #0
declare void @foo2(ptr noalias sret(%Abc) align 8) #0
define void @test_sret_bar() #0 {
entry:
%dummy1 = alloca %Abc, align 8
%dummy2 = alloca %Abc, align 8
call void @foo1(ptr sret(%Abc) align 8 %dummy1)
call void @foo2(ptr sret(%Abc) align 8 %dummy2)
ret void
}