63 lines
901 B
Plaintext
63 lines
901 B
Plaintext
S = struct
|
|
{
|
|
a: u64,
|
|
b: u64,
|
|
c: u64,
|
|
d: u64,
|
|
e: u64
|
|
f: u64,
|
|
g: u64,
|
|
h: u64,
|
|
i: u64,
|
|
j: u64
|
|
}
|
|
|
|
require = fn (ok: u1) void
|
|
{
|
|
if (!ok)
|
|
{
|
|
#trap();
|
|
}
|
|
}
|
|
|
|
va_arg_fn = fn [cc(c)] (first_arg: u32, ...) void
|
|
{
|
|
if (first_arg != 123456789)
|
|
{
|
|
#trap();
|
|
}
|
|
|
|
>va = #va_start();
|
|
|
|
>s = #va_arg(&va, S);
|
|
require(s.a == 9);
|
|
require(s.b == 8);
|
|
require(s.c == 7);
|
|
require(s.d == 6);
|
|
require(s.e == 5);
|
|
require(s.f == 4);
|
|
require(s.g == 3);
|
|
require(s.h == 2);
|
|
require(s.i == 1);
|
|
require(s.j == 0);
|
|
}
|
|
|
|
[export] main = fn [cc(c)] () s32
|
|
{
|
|
>first_arg: u32 = 123456789;
|
|
>s : S = {
|
|
.a = 9,
|
|
.b = 8,
|
|
.c = 7,
|
|
.d = 6,
|
|
.e = 5,
|
|
.f = 4,
|
|
.g = 3,
|
|
.h = 2,
|
|
.i = 1,
|
|
.j = 0,
|
|
};
|
|
va_arg_fn(first_arg, s);
|
|
return 0;
|
|
}
|