# result loc semantics for array initialization · gitcafe/zig

[View on GitCafe](https://git.cafe/gitcafe/zig/commit/59fe13772f63838a84ac1786c0dc8361cd14b99d)

Repository: [gitcafe/zig](https://git.cafe/gitcafe/zig)

Visibility: public

Requested revision: 59fe13772f63838a84ac1786c0dc8361cd14b99d

Requested commit: 59fe13772f63838a84ac1786c0dc8361cd14b99d

Commit: 59fe13772f63838a84ac1786c0dc8361cd14b99d

Tree: d005cca602d469ac080d68e9d6807c85d08ec9df

Author: Andrew Kelley

Committer: Andrew Kelley

## Message

````
result loc semantics for array initialization

```zig
export fn entry() void {
    var x = [3]Bar{ bar(), bar(), Bar{ .y = 12 } };
}
```

```llvm
define void @entry() #2 !dbg !35 {
Entry:
  %x = alloca [3 x %Bar], align 4
  %0 = getelementptr inbounds [3 x %Bar], [3 x %Bar]* %x, i64 0, i64 0, !dbg !48
  call fastcc void @bar(%Bar* sret %0), !dbg !48
  %1 = getelementptr inbounds [3 x %Bar], [3 x %Bar]* %x, i64 0, i64 1, !dbg !49
  call fastcc void @bar(%Bar* sret %1), !dbg !49
  %2 = getelementptr inbounds [3 x %Bar], [3 x %Bar]* %x, i64 0, i64 2, !dbg !50
  %3 = bitcast %Bar* %2 to i8*, !dbg !50
  call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 bitcast (%Bar* @0 to i8*), i64 4, i1 false), !dbg !50
  call void @llvm.dbg.declare(metadata [3 x %Bar]* %x, metadata !39, metadata !DIExpression()), !dbg !51
  ret void, !dbg !52
}
```

````

## Parents

- [3ec766abe38a892346e56a47ec0fa4c27eda2995](https://git.cafe/gitcafe/zig/commit/3ec766abe38a892346e56a47ec0fa4c27eda2995?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zig/tree/59fe13772f63838a84ac1786c0dc8361cd14b99d?format=markdown)
