Files
lib_compiler/tests/sizes1.txt
2024-04-13 15:29:53 +02:00

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;
}