authorgravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2022-07-27 14:02:52+03:00
committergravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2022-07-27 17:11:46+03:00
loge4a36a4cec12efe8a0128229a839dcd8b95b298d
treea27fd6e3984b94625f486d46e209d4b7c3aaf06e
parent7ba1f9bfb52a1f6fa776eeafb45790331be4388f

AstGen: add `dbg_stmt`s for `unreachable` and `@panic`

Closes #12249

1 files changed, 5 insertions(+), 1 deletions(-)

src/AstGen.zig+5-1
...@@ -751,6 +751,7 @@ fn expr(gz: *GenZir, scope: *Scope, rl: ResultLoc, node: Ast.Node.Index) InnerEr...@@ -751,6 +751,7 @@ fn expr(gz: *GenZir, scope: *Scope, rl: ResultLoc, node: Ast.Node.Index) InnerEr
751 },751 },
752752
753 .unreachable_literal => {753 .unreachable_literal => {
754 try emitDbgNode(gz, node);
754 _ = try gz.addAsIndex(.{755 _ = try gz.addAsIndex(.{
755 .tag = .@"unreachable",756 .tag = .@"unreachable",
756 .data = .{ .@"unreachable" = .{757 .data = .{ .@"unreachable" = .{
...@@ -7443,7 +7444,6 @@ fn builtinCall(...@@ -7443,7 +7444,6 @@ fn builtinCall(
7443 .bool_to_int => return simpleUnOp(gz, scope, rl, node, bool_rl, params[0], .bool_to_int),7444 .bool_to_int => return simpleUnOp(gz, scope, rl, node, bool_rl, params[0], .bool_to_int),
7444 .embed_file => return simpleUnOp(gz, scope, rl, node, .{ .ty = .const_slice_u8_type }, params[0], .embed_file),7445 .embed_file => return simpleUnOp(gz, scope, rl, node, .{ .ty = .const_slice_u8_type }, params[0], .embed_file),
7445 .error_name => return simpleUnOp(gz, scope, rl, node, .{ .ty = .anyerror_type }, params[0], .error_name),7446 .error_name => return simpleUnOp(gz, scope, rl, node, .{ .ty = .anyerror_type }, params[0], .error_name),
7446 .panic => return simpleUnOp(gz, scope, rl, node, .{ .ty = .const_slice_u8_type }, params[0], if (gz.force_comptime) .panic_comptime else .panic),
7447 .set_cold => return simpleUnOp(gz, scope, rl, node, bool_rl, params[0], .set_cold),7447 .set_cold => return simpleUnOp(gz, scope, rl, node, bool_rl, params[0], .set_cold),
7448 .set_runtime_safety => return simpleUnOp(gz, scope, rl, node, bool_rl, params[0], .set_runtime_safety),7448 .set_runtime_safety => return simpleUnOp(gz, scope, rl, node, bool_rl, params[0], .set_runtime_safety),
7449 .sqrt => return simpleUnOp(gz, scope, rl, node, .none, params[0], .sqrt),7449 .sqrt => return simpleUnOp(gz, scope, rl, node, .none, params[0], .sqrt),
...@@ -7476,6 +7476,10 @@ fn builtinCall(...@@ -7476,6 +7476,10 @@ fn builtinCall(
7476 .truncate => return typeCast(gz, scope, rl, node, params[0], params[1], .truncate),7476 .truncate => return typeCast(gz, scope, rl, node, params[0], params[1], .truncate),
7477 // zig fmt: on7477 // zig fmt: on
74787478
7479 .panic => {
7480 try emitDbgNode(gz, node);
7481 return simpleUnOp(gz, scope, rl, node, .{ .ty = .const_slice_u8_type }, params[0], if (gz.force_comptime) .panic_comptime else .panic);
7482 },
7479 .error_to_int => {7483 .error_to_int => {
7480 const operand = try expr(gz, scope, .none, params[0]);7484 const operand = try expr(gz, scope, .none, params[0]);
7481 const result = try gz.addExtendedPayload(.error_to_int, Zir.Inst.UnNode{7485 const result = try gz.addExtendedPayload(.error_to_int, Zir.Inst.UnNode{