| author | |
| committer | |
| log | 95d9835898052835ce767be2fcc0e4344a704b96 |
| tree | 6ae7dde24db25b797aac4e7ec18ddca4d1c6c713 |
| parent | a4aca787229e3b0b3dc992b747cc72a561c2078c |
| signature |
```zig
export fn entry() void {
var c = true;
var x = if (c) u8(4) else if (c) u16(100) else u32(10);
}
```
```llvm
define void @entry() #2 !dbg !35 {
Entry:
%c = alloca i1, align 1
%x = alloca i32, align 4
store i1 true, i1* %c, align 1, !dbg !44
call void @llvm.dbg.declare(metadata i1* %c, metadata !39, metadata !DIExpression()), !dbg !45
%0 = load i1, i1* %c, align 1, !dbg !46
br i1 %0, label %Then2, label %Else, !dbg !46
Else: ; preds = %Entry
%1 = load i1, i1* %c, align 1, !dbg !47
br i1 %1, label %Then, label %Else1, !dbg !47
Then: ; preds = %Else
br label %EndIf, !dbg !48
Else1: ; preds = %Else
br label %EndIf, !dbg !48
Then2: ; preds = %Entry
br label %EndIf3, !dbg !49
EndIf: ; preds = %Else1, %Then
%2 = phi i32 [ 100, %Then ], [ 10, %Else1 ], !dbg !48
br label %EndIf3, !dbg !49
EndIf3: ; preds = %EndIf, %Then2
%3 = phi i32 [ 4, %Then2 ], [ %2, %EndIf ], !dbg !49
store i32 %3, i32* %x, align 4, !dbg !49
call void @llvm.dbg.declare(metadata i32* %x, metadata !42, metadata !DIExpression()), !dbg !50
ret void, !dbg !51
}
```1 files changed, 2 insertions(+), 1 deletions(-)
src/ir.cpp+2-1| ... | @@ -14328,13 +14328,14 @@ static ZigType *ir_result_loc_expected_type(IrAnalyze *ira, ResultLoc *result_lo | ... | @@ -14328,13 +14328,14 @@ static ZigType *ir_result_loc_expected_type(IrAnalyze *ira, ResultLoc *result_lo |
| 14328 | switch (result_loc->id) { | 14328 | switch (result_loc->id) { |
| 14329 | case ResultLocIdInvalid: | 14329 | case ResultLocIdInvalid: |
| 14330 | case ResultLocIdPeerParent: | 14330 | case ResultLocIdPeerParent: |
| 14331 | case ResultLocIdPeer: | ||
| 14332 | zig_unreachable(); | 14331 | zig_unreachable(); |
| 14333 | case ResultLocIdNone: | 14332 | case ResultLocIdNone: |
| 14334 | case ResultLocIdVar: | 14333 | case ResultLocIdVar: |
| 14335 | return nullptr; | 14334 | return nullptr; |
| 14336 | case ResultLocIdReturn: | 14335 | case ResultLocIdReturn: |
| 14337 | return ira->explicit_return_type; | 14336 | return ira->explicit_return_type; |
| 14337 | case ResultLocIdPeer: | ||
| 14338 | return reinterpret_cast<ResultLocPeer*>(result_loc)->parent->resolved_type; | ||
| 14338 | } | 14339 | } |
| 14339 | zig_unreachable(); | 14340 | zig_unreachable(); |
| 14340 | } | 14341 | } |