diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2019-06-07 17:37:29 -0400 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2019-06-07 17:37:29 -0400 |
| commit | b1efba0c7011f8f5acb31ca3c384c3d2750ac669 (patch) | |
| tree | a0ff5b9906d743508b950a3f91d2509708a2e269 /src/parser.cpp | |
| parent | 2b0a1b7b1438cfc561276fa56356e5dbaa359c89 (diff) | |
| download | zig-b1efba0c7011f8f5acb31ca3c384c3d2750ac669.tar.gz zig-b1efba0c7011f8f5acb31ca3c384c3d2750ac669.zip | |
hook up peer result locs to catch
```zig
export fn entry() void {
var x = crap() catch bar();
}
```
```llvm
define void @entry() #2 !dbg !40 {
Entry:
%0 = alloca { i16, %Foo }, align 4
%x = alloca %Foo, align 4
call fastcc void @crap({ i16, %Foo }* sret %0), !dbg !50
%1 = getelementptr inbounds { i16, %Foo }, { i16, %Foo }* %0, i32 0, i32 0, !dbg !51
%2 = load i16, i16* %1, align 2, !dbg !51
%3 = icmp ne i16 %2, 0, !dbg !51
br i1 %3, label %UnwrapErrError, label %UnwrapErrOk, !dbg !51
UnwrapErrError: ; preds = %Entry
call fastcc void @bar(%Foo* sret %x), !dbg !52
br label %UnwrapErrEnd, !dbg !51
UnwrapErrOk: ; preds = %Entry
%4 = getelementptr inbounds { i16, %Foo }, { i16, %Foo }* %0, i32 0, i32 1, !dbg !51
%5 = bitcast %Foo* %4 to i8*, !dbg !51
%6 = bitcast %Foo* %x to i8*, !dbg !51
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 4 %5, i64 4, i1 false), !dbg !51
br label %UnwrapErrEnd, !dbg !51
UnwrapErrEnd: ; preds = %UnwrapErrOk, %UnwrapErrError
ret void, !dbg !53
}
```
Diffstat (limited to 'src/parser.cpp')
0 files changed, 0 insertions, 0 deletions
