Files
c3c/test/test_suite/compile_time_introspection/sizeof.c3t
2023-01-11 18:00:08 +01:00

66 lines
1.5 KiB
C

module foo;
import bar;
import bar::abc;
long x = Baz.sizeof;
short y = $evaltype("Baz").sizeof;
int z = bar::Baz.sizeof;
int w = bar::Baz.sizeof;
int v = bar::abc::Foo.sizeof;
int x1 = $sizeof(x);
int y1 = $sizeof($eval("y"));
int a = Baz.y.sizeof;
int b = $evaltype("Deep").a.$eval("b").sizeof;
int c = Deep.a.b.c.sizeof;
int d = Deep[][100].sizeof;
int e = $evaltype("Deep")[][100]**[100][]*.sizeof;
int a2 = Baz.y.sizeof;
int a3 = Baz.y.sizeof;
int a4 = Baz.y.sizeof;
int a5 = Baz.y.sizeof;
module bar;
struct Deep
{
int x;
struct a
{
struct b
{
char[5] c;
}
}
}
struct Baz
{
int x;
char[60] y;
}
module bar::abc;
struct Foo
{
char x;
}
// #expect: foo.ll
@foo_x = local_unnamed_addr global i64 64, align 8
@foo_y = local_unnamed_addr global i16 64, align 2
@foo_z = local_unnamed_addr global i32 64, align 4
@foo_w = local_unnamed_addr global i32 64, align 4
@foo_v = local_unnamed_addr global i32 1, align 4
@foo_x1 = local_unnamed_addr global i32 8, align 4
@foo_y1 = local_unnamed_addr global i32 2, align 4
@foo_a = local_unnamed_addr global i32 60, align 4
@foo_b = local_unnamed_addr global i32 5, align 4
@foo_c = local_unnamed_addr global i32 5, align 4
@foo_d = local_unnamed_addr global i32 1600, align 4
@foo_e = local_unnamed_addr global i32 8, align 4
@foo_a2 = local_unnamed_addr global i32 60, align 4
@foo_a3 = local_unnamed_addr global i32 60, align 4
@foo_a4 = local_unnamed_addr global i32 60, align 4
@foo_a5 = local_unnamed_addr global i32 60, align 4