// #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
}