Sema: handle noreturn in boolBr

Closes #13112
This commit is contained in:
Veikka Tuominen 2022-10-17 13:39:40 +03:00
parent 1e963053d0
commit be9a4a1f97
3 changed files with 11 additions and 1 deletions

View File

@ -15652,7 +15652,9 @@ fn zirBoolBr(
_ = try lhs_block.addBr(block_inst, lhs_result);
const rhs_result = try sema.resolveBody(rhs_block, body, inst);
if (!sema.typeOf(rhs_result).isNoReturn()) {
_ = try rhs_block.addBr(block_inst, rhs_result);
}
return finishCondBr(sema, parent_block, &child_block, &then_block, &else_block, lhs, block_inst);
}

View File

@ -103,6 +103,7 @@ test {
_ = @import("behavior/bugs/12972.zig");
_ = @import("behavior/bugs/12984.zig");
_ = @import("behavior/bugs/13068.zig");
_ = @import("behavior/bugs/13112.zig");
_ = @import("behavior/bugs/13128.zig");
_ = @import("behavior/byteswap.zig");
_ = @import("behavior/byval_arg_var.zig");

View File

@ -0,0 +1,7 @@
fn nice(a: u32, b: u32) bool {
return a == 5 or b == 2 or @panic("oh no");
}
test {
_ = nice(2, 2);
}