mirror of
https://github.com/c3lang/c3c.git
synced 2026-02-27 20:11:17 +00:00
- Remove `[?]` syntax. - Change `int!` to `int?` syntax. - New `fault` declarations. - Enum associated values can reference the calling enum.
28 lines
708 B
Plaintext
28 lines
708 B
Plaintext
// #target: macos-x64
|
|
module foo;
|
|
|
|
char[2] g = "ab";
|
|
char[*] h = "abc";
|
|
|
|
fn int main()
|
|
{
|
|
char[2] x = "ab";
|
|
char[*] y = "abc";
|
|
return 0;
|
|
}
|
|
|
|
/* #expect: foo.ll
|
|
|
|
@foo.g = local_unnamed_addr global [2 x i8] c"ab", align 1
|
|
@foo.h = local_unnamed_addr global [3 x i8] c"abc", align 1
|
|
@.str = private unnamed_addr constant [3 x i8] c"ab\00", align 1
|
|
@.str.2 = private unnamed_addr constant [4 x i8] c"abc\00", align 1
|
|
|
|
define i32 @main() #0 {
|
|
entry:
|
|
%x = alloca [2 x i8], align 1
|
|
%y = alloca [3 x i8], align 1
|
|
call void @llvm.memcpy.p0.p0.i32(ptr align 1 %x, ptr align 1 @.str, i32 2, i1 false)
|
|
call void @llvm.memcpy.p0.p0.i32(ptr align 1 %y, ptr align 1 @.str.2, i32 3, i1 false)
|
|
ret i32 0
|
|
} |