aboutsummaryrefslogtreecommitdiff
path: root/src/codegen.cpp
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2019-06-07 11:34:47 -0400
committerAndrew Kelley <andrew@ziglang.org>2019-06-07 11:34:47 -0400
commit76a3938d69e23a22ee2d5db971737c532ee8a6b0 (patch)
tree175f87fd222edfefd2ec2136619ff1e3a2b165c8 /src/codegen.cpp
parentb19b1c1298f755238e7b6a54e5482616d923f9a8 (diff)
downloadzig-76a3938d69e23a22ee2d5db971737c532ee8a6b0.tar.gz
zig-76a3938d69e23a22ee2d5db971737c532ee8a6b0.zip
no-copy semantics for peer result function calls
```zig export fn entry() void { var c = true; var x = if (c) foo() else bar(); } ``` ```llvm define void @entry() #2 !dbg !35 { Entry: %c = alloca i1, align 1 %x = alloca %Foo, align 4 store i1 true, i1* %c, align 1, !dbg !47 call void @llvm.dbg.declare(metadata i1* %c, metadata !39, metadata !DIExpression()), !dbg !48 %0 = load i1, i1* %c, align 1, !dbg !49 br i1 %0, label %Then, label %Else, !dbg !49 Then: ; preds = %Entry call fastcc void @foo(%Foo* sret %x), !dbg !50 br label %EndIf, !dbg !51 Else: ; preds = %Entry call fastcc void @bar(%Foo* sret %x), !dbg !52 br label %EndIf, !dbg !51 EndIf: ; preds = %Else, %Then call void @llvm.dbg.declare(metadata %Foo* %x, metadata !42, metadata !DIExpression()), !dbg !53 ret void, !dbg !54 } ```
Diffstat (limited to 'src/codegen.cpp')
0 files changed, 0 insertions, 0 deletions