# hook up result locs to for loops · gitcafe/zig

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

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

Visibility: public

Requested revision: 2b0a1b7b1438cfc561276fa56356e5dbaa359c89

Requested commit: 2b0a1b7b1438cfc561276fa56356e5dbaa359c89

Commit: 2b0a1b7b1438cfc561276fa56356e5dbaa359c89

Tree: 9ef27675444af88677ba3abcdb0be8357de65bb6

Author: Andrew Kelley

Committer: Andrew Kelley

## Message

````
hook up result locs to for loops

```zig
export fn entry() void {
    var buf: [10]u8 = undefined;
    var x = for (buf) |x| break foo() else bar();
}
```

```llvm
define void @entry() #2 !dbg !35 {
Entry:
  %buf = alloca [10 x i8], align 1
  %i = alloca i64, align 8
  %x = alloca %Foo, align 4
  %0 = bitcast [10 x i8]* %buf to i8*, !dbg !51
  call void @llvm.memset.p0i8.i64(i8* align 1 %0, i8 -86, i64 10, i1 false), !dbg !51
  call void @llvm.dbg.declare(metadata [10 x i8]* %buf, metadata !39, metadata !DIExpression()), !dbg !51
  store i64 0, i64* %i, align 8, !dbg !52
  call void @llvm.dbg.declare(metadata i64* %i, metadata !44, metadata !DIExpression()), !dbg !52
  br label %ForCond, !dbg !52

ForCond:                                          ; preds = %Entry
  %1 = load i64, i64* %i, align 8, !dbg !52
  %2 = icmp ult i64 %1, 10, !dbg !52
  br i1 %2, label %ForBody, label %ForElse, !dbg !52

ForBody:                                          ; preds = %ForCond
  %3 = getelementptr inbounds [10 x i8], [10 x i8]* %buf, i64 0, i64 %1, !dbg !52
  call void @llvm.dbg.declare(metadata i8* %3, metadata !45, metadata !DIExpression()), !dbg !53
  call fastcc void @foo(%Foo* sret %x), !dbg !54
  br label %ForEnd, !dbg !55

ForElse:                                          ; preds = %ForCond
  call fastcc void @bar(%Foo* sret %x), !dbg !56
  br label %ForEnd, !dbg !52

ForEnd:                                           ; preds = %ForElse, %ForBody
  call void @llvm.dbg.declare(metadata %Foo* %x, metadata !46, metadata !DIExpression()), !dbg !57
  ret void, !dbg !58
}
```

````

## Parents

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

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