zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit e4a36a4cec12efe8a0128229a839dcd8b95b298d (tree)
parent 7ba1f9bfb52a1f6fa776eeafb45790331be4388f
Author: Veikka Tuominen <git@vexu.eu>
Date:   Wed, 27 Jul 2022 14:02:52 +0300

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

Closes #12249

Diffstat:
Msrc/AstGen.zig | 6+++++-
1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/AstGen.zig b/src/AstGen.zig @@ -751,6 +751,7 @@ fn expr(gz: *GenZir, scope: *Scope, rl: ResultLoc, node: Ast.Node.Index) InnerEr }, .unreachable_literal => { + try emitDbgNode(gz, node); _ = try gz.addAsIndex(.{ .tag = .@"unreachable", .data = .{ .@"unreachable" = .{ @@ -7443,7 +7444,6 @@ fn builtinCall( .bool_to_int => return simpleUnOp(gz, scope, rl, node, bool_rl, params[0], .bool_to_int), .embed_file => return simpleUnOp(gz, scope, rl, node, .{ .ty = .const_slice_u8_type }, params[0], .embed_file), .error_name => return simpleUnOp(gz, scope, rl, node, .{ .ty = .anyerror_type }, params[0], .error_name), - .panic => return simpleUnOp(gz, scope, rl, node, .{ .ty = .const_slice_u8_type }, params[0], if (gz.force_comptime) .panic_comptime else .panic), .set_cold => return simpleUnOp(gz, scope, rl, node, bool_rl, params[0], .set_cold), .set_runtime_safety => return simpleUnOp(gz, scope, rl, node, bool_rl, params[0], .set_runtime_safety), .sqrt => return simpleUnOp(gz, scope, rl, node, .none, params[0], .sqrt), @@ -7476,6 +7476,10 @@ fn builtinCall( .truncate => return typeCast(gz, scope, rl, node, params[0], params[1], .truncate), // zig fmt: on + .panic => { + try emitDbgNode(gz, node); + return simpleUnOp(gz, scope, rl, node, .{ .ty = .const_slice_u8_type }, params[0], if (gz.force_comptime) .panic_comptime else .panic); + }, .error_to_int => { const operand = try expr(gz, scope, .none, params[0]); const result = try gz.addExtendedPayload(.error_to_int, Zir.Inst.UnNode{