48 lines
722 B
Plaintext
48 lines
722 B
Plaintext
SmallStructInts = struct
|
|
{
|
|
a: u8,
|
|
b: u8,
|
|
c: u8,
|
|
d: u8,
|
|
}
|
|
|
|
bb_ret_small_struct_ints = fn [cc(c)] () SmallStructInts
|
|
{
|
|
return {
|
|
.a = 1,
|
|
.b = 2,
|
|
.c = 3,
|
|
.d = 4,
|
|
};
|
|
}
|
|
|
|
require = fn(ok: u1) void
|
|
{
|
|
if (!ok)
|
|
{
|
|
#trap();
|
|
}
|
|
}
|
|
|
|
c_small_struct_ints = fn [cc(c)] (x: SmallStructInts) void
|
|
{
|
|
require(x.a == 1);
|
|
require(x.b == 2);
|
|
require(x.c == 3);
|
|
require(x.d == 4);
|
|
|
|
>y = bb_ret_small_struct_ints();
|
|
|
|
require(y.a == 1);
|
|
require(y.b == 2);
|
|
require(y.c == 3);
|
|
require(y.d == 4);
|
|
}
|
|
|
|
[export] main = fn [cc(c)] () s32
|
|
{
|
|
>s: SmallStructInts = { .a = 1, .b = 2, .c = 3, .d = 4 };
|
|
c_small_struct_ints(s);
|
|
return 0;
|
|
}
|