Files
c3c/test/test_suite/struct/struct_union_inner_align.c3t
2024-07-02 15:17:41 +02:00

44 lines
621 B
C

// #target: macos-x64
module test;
union Test @align(16)
{
char foo;
}
union Test3
{
Test test;
ulong a @align(32);
}
struct Test2
{
Test test;
uint a;
}
fn int main()
{
Test2 a;
Test b;
Test3 c;
$assert(32 == Test3.sizeof);
$assert(32 == Test3.alignof);
$assert(32 == Test2.sizeof);
$assert(16 == Test2.alignof);
$assert(16 == Test.sizeof);
$assert(16 == Test.alignof);
return 0;
}
/* #expect: test.ll
%Test2 = type { %Test, i32, [12 x i8] }
%Test = type { i8, [15 x i8] }
%Test3 = type { i64, [24 x i8] }
%a = alloca %Test2, align 16
%b = alloca %Test, align 16
%c = alloca %Test3, align 32