26 lines
307 B
Plaintext
26 lines
307 B
Plaintext
foo = macro [T] (ptr: &u32) &T
|
|
{
|
|
return #pointer_cast(ptr);
|
|
}
|
|
|
|
A = struct
|
|
{
|
|
a: u32,
|
|
}
|
|
|
|
B = struct
|
|
{
|
|
b: u32,
|
|
}
|
|
|
|
[export] main = fn [cc(c)] () s32
|
|
{
|
|
>var: u32 = 0;
|
|
>a = foo[A](&var);
|
|
>b = foo[B](&var);
|
|
a.a = 1;
|
|
if (b.b != 1) #trap();
|
|
if (var != 1) #trap();
|
|
return 0;
|
|
}
|