37 lines
569 B
Plaintext
37 lines
569 B
Plaintext
SplitStructInt = struct
|
|
{
|
|
a: u64,
|
|
b: u8,
|
|
c: u32,
|
|
}
|
|
|
|
require = fn (ok: u1) void
|
|
{
|
|
if (!ok)
|
|
{
|
|
#trap();
|
|
}
|
|
}
|
|
|
|
bb_split_struct_ints = fn [cc(c)] (x: SplitStructInt) void
|
|
{
|
|
require(x.a == 1234);
|
|
require(x.b == 100);
|
|
require(x.c == 1337);
|
|
}
|
|
|
|
[export] main = fn [cc(c)] () s32
|
|
{
|
|
>split: SplitStructInt = {
|
|
.a = 1234,
|
|
.b = 100,
|
|
.c = 1337,
|
|
};
|
|
|
|
bb_split_struct_ints(split);
|
|
>a: s32 = #truncate(split.a);
|
|
>b: s32 = #extend(split.b);
|
|
>c: s32 = #extend(split.c);
|
|
return a + b + 3 - c;
|
|
}
|