Files
c3c/test/test_suite/struct/struct_const_construct_simple.c3t
Christoffer Lerno 25bccf4883 New faults and syntax (#2034)
- Remove `[?]` syntax.
- Change `int!` to `int?` syntax.
- New `fault` declarations.
- Enum associated values can reference the calling enum.
2025-03-10 00:11:35 +01:00

33 lines
1.2 KiB
Plaintext

// #target: macos-x64
module structo;
struct Foo
{
int foo;
long bar;
}
usz x @private = Foo.sizeof;
Foo foo1 @private = { 1, 2 };
Foo foo2 @private = { .foo = 2 };
Foo foo3 @private = { .bar = 3 };
Foo foo4 @private = { .bar = 4, .foo = 4, .bar = 1 };
Foo foo5 @private = {};
Foo foo6 @private;
const Foo FOO7 @private = { 1, 2 };
Foo foo8 @private = FOO7;
/* #expect: structo.ll
@"$ct.structo.Foo" = linkonce global %.introspect { i8 9, i64 0, ptr null, i64 16, i64 0, i64 2, [0 x i64] zeroinitializer }, align 8
@structo.x = internal unnamed_addr global i64 16, align 8
@structo.foo1 = internal unnamed_addr global %Foo { i32 1, i64 2 }, align 8
@structo.foo2 = internal unnamed_addr global %Foo { i32 2, i64 0 }, align 8
@structo.foo3 = internal unnamed_addr global %Foo { i32 0, i64 3 }, align 8
@structo.foo4 = internal unnamed_addr global %Foo { i32 4, i64 1 }, align 8
@structo.foo5 = internal unnamed_addr global %Foo zeroinitializer, align 8
@structo.foo6 = internal unnamed_addr global %Foo zeroinitializer, align 8
@structo.FOO7 = internal unnamed_addr constant %Foo { i32 1, i64 2 }, align 8
@structo.foo8 = internal unnamed_addr global %Foo { i32 1, i64 2 }, align 8