113 lines
2.7 KiB
Plaintext
113 lines
2.7 KiB
Plaintext
import "libc";
|
|
|
|
S1 :: struct {
|
|
i1: char;
|
|
i2: int;
|
|
i3: char;
|
|
i4: ullong;
|
|
i5: char;
|
|
} @dont_mangle
|
|
|
|
S2 :: struct {
|
|
c: char;
|
|
} @dont_mangle
|
|
|
|
S3 :: struct {
|
|
c: uint;
|
|
} @dont_mangle
|
|
|
|
S4 :: struct {
|
|
c: uint;
|
|
s1: S1;
|
|
s2: S2;
|
|
} @dont_mangle
|
|
|
|
S5 :: struct {
|
|
ul: ullong;
|
|
ui: uint;
|
|
i: int;
|
|
c: char;
|
|
s: short;
|
|
s2: S2;
|
|
v: *void;
|
|
c2: char;
|
|
s4: S4;
|
|
} @dont_mangle
|
|
|
|
|
|
main :: proc(): int {
|
|
{c_align: int = #`LC_Alignof(S1)`;
|
|
assert(c_align == alignof(:S1));}
|
|
|
|
{c_align: int = #`LC_Alignof(S2)`;
|
|
assert(c_align == alignof(:S2));}
|
|
|
|
{c_align: int = #`LC_Alignof(S3)`;
|
|
assert(c_align == alignof(:S3));}
|
|
|
|
{c_align: int = #`LC_Alignof(S4)`;
|
|
assert(c_align == alignof(:S4));}
|
|
|
|
{c_sizeof: int = #`sizeof(S1)`;
|
|
assert(c_sizeof == sizeof(:S1));}
|
|
|
|
{c_sizeof: int = #`sizeof(S2)`;
|
|
assert(c_sizeof == sizeof(:S2));}
|
|
|
|
{c_sizeof: int = #`sizeof(S3)`;
|
|
assert(c_sizeof == sizeof(:S3));}
|
|
|
|
{c_sizeof: int = #`sizeof(S4)`;
|
|
assert(c_sizeof == sizeof(:S4));}
|
|
|
|
{c_sizeof: int = #`sizeof(S5)`;
|
|
assert(c_sizeof == sizeof(:S5));}
|
|
|
|
{c_alignof: int = #`LC_Alignof(S5)`;
|
|
assert(c_alignof == alignof(:S5));}
|
|
|
|
{c_offsetof: int = #`offsetof(S4, s1)`;
|
|
assert(c_offsetof == offsetof(:S4, s1));}
|
|
|
|
{c_offsetof: int = #`offsetof(S4, s2)`;
|
|
assert(c_offsetof == offsetof(:S4, s2));}
|
|
|
|
{c_offsetof: int = #`offsetof(S1, i1)`;
|
|
assert(c_offsetof == offsetof(:S1, i1));}
|
|
|
|
{c_offsetof: int = #`offsetof(S1, i2)`;
|
|
assert(c_offsetof == offsetof(:S1, i2));}
|
|
|
|
{c_offsetof: int = #`offsetof(S1, i3)`;
|
|
assert(c_offsetof == offsetof(:S1, i3));}
|
|
|
|
{c_offsetof: int = #`offsetof(S1, i4)`;
|
|
assert(c_offsetof == offsetof(:S1, i4));}
|
|
|
|
{c_offsetof: int = #`offsetof(S1, i5)`;
|
|
assert(c_offsetof == offsetof(:S1, i5));}
|
|
|
|
{c_offsetof: int = #`offsetof(S3, c)`;
|
|
assert(c_offsetof == offsetof(:S3, c));}
|
|
|
|
{c_offsetof: int = #`offsetof(S5, ul)`;
|
|
assert(c_offsetof == offsetof(:S5, ul));}
|
|
{c_offsetof: int = #`offsetof(S5, ui)`;
|
|
assert(c_offsetof == offsetof(:S5, ui));}
|
|
{c_offsetof: int = #`offsetof(S5, i)`;
|
|
assert(c_offsetof == offsetof(:S5, i));}
|
|
{c_offsetof: int = #`offsetof(S5, c)`;
|
|
assert(c_offsetof == offsetof(:S5, c));}
|
|
{c_offsetof: int = #`offsetof(S5, s)`;
|
|
assert(c_offsetof == offsetof(:S5, s));}
|
|
{c_offsetof: int = #`offsetof(S5, s2)`;
|
|
assert(c_offsetof == offsetof(:S5, s2));}
|
|
{c_offsetof: int = #`offsetof(S5, v)`;
|
|
assert(c_offsetof == offsetof(:S5, v));}
|
|
{c_offsetof: int = #`offsetof(S5, c2)`;
|
|
assert(c_offsetof == offsetof(:S5, c2));}
|
|
{c_offsetof: int = #`offsetof(S5, s4)`;
|
|
assert(c_offsetof == offsetof(:S5, s4));}
|
|
|
|
return 0;
|
|
} |