# result location semantics for slices · gitcafe/zig

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

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

Visibility: public

Requested revision: c36289511629e01bbd32bc5f1133f5ed5997d1e0

Requested commit: c36289511629e01bbd32bc5f1133f5ed5997d1e0

Commit: c36289511629e01bbd32bc5f1133f5ed5997d1e0

Tree: c527aacbe9af5abc3c400bc0b5d412e94f08027f

Author: Andrew Kelley

Committer: Andrew Kelley

## Message

````
result location semantics for slices

```zig
export fn entry() void {
    var buf: [10]u8 = undefined;
    const slice1: []const u8 = &buf;
    const slice2 = buf[0..];
}
```

```llvm
define void @entry() #2 !dbg !35 {
Entry:
  %buf = alloca [10 x i8], align 1
  %slice1 = alloca %"[]u8", align 8
  %slice2 = alloca %"[]u8", align 8
  %0 = bitcast [10 x i8]* %buf to i8*, !dbg !46
  call void @llvm.memset.p0i8.i64(i8* align 1 %0, i8 -86, i64 10, i1 false), !dbg !46
  call void @llvm.dbg.declare(metadata [10 x i8]* %buf, metadata !39, metadata !DIExpression()), !dbg !46
  %1 = getelementptr inbounds %"[]u8", %"[]u8"* %slice1, i32 0, i32 0, !dbg !47
  %2 = getelementptr inbounds [10 x i8], [10 x i8]* %buf, i64 0, i64 0, !dbg !47
  store i8* %2, i8** %1, align 8, !dbg !47
  %3 = getelementptr inbounds %"[]u8", %"[]u8"* %slice1, i32 0, i32 1, !dbg !47
  store i64 10, i64* %3, align 8, !dbg !47
  call void @llvm.dbg.declare(metadata %"[]u8"* %slice1, metadata !44, metadata !DIExpression()), !dbg !48
  %4 = getelementptr inbounds %"[]u8", %"[]u8"* %slice2, i32 0, i32 0, !dbg !49
  %5 = getelementptr inbounds [10 x i8], [10 x i8]* %buf, i64 0, i64 0, !dbg !49
  store i8* %5, i8** %4, align 8, !dbg !49
  %6 = getelementptr inbounds %"[]u8", %"[]u8"* %slice2, i32 0, i32 1, !dbg !49
  store i64 10, i64* %6, align 8, !dbg !49
  call void @llvm.dbg.declare(metadata %"[]u8"* %slice2, metadata !45, metadata !DIExpression()), !dbg !50
  ret void, !dbg !51
}
```

````

## Parents

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

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