diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2022-07-27 16:11:07 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-07-27 16:11:07 -0700 |
| commit | dfc7493dcb049788b92137ca09b8bd47cee23865 (patch) | |
| tree | dfd6c4da8bc1ff71e0ecc8a1d3a1ac29c433bc64 /src/AstGen.zig | |
| parent | 90f23e131eadae427c4253fb658002633263b82e (diff) | |
| parent | 793db63746ca044927743ee94405dad2a3f02fb8 (diff) | |
| download | zig-dfc7493dcb049788b92137ca09b8bd47cee23865.tar.gz zig-dfc7493dcb049788b92137ca09b8bd47cee23865.zip | |
Merge pull request #12256 from Vexu/stage2
stage2 typeInfo UAF fix + more
Diffstat (limited to 'src/AstGen.zig')
| -rw-r--r-- | src/AstGen.zig | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/AstGen.zig b/src/AstGen.zig index 8bf1e190c7..e194e94d05 100644 --- 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{ |
