aboutsummaryrefslogtreecommitdiff
path: root/src/codegen/c.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2023-03-04 16:20:31 -0500
committerGitHub <noreply@github.com>2023-03-04 16:20:31 -0500
commite7f128c2051b086cdb1c03da041745b560bbaa3e (patch)
tree89d06ee67639dfa0260c5beabc344fb33099df0d /src/codegen/c.zig
parentc9d990d79083f117564837f762c3e225d7fbc5cf (diff)
parent4eb3f50fcf6fcfb6b8013571be00b9eeeb909833 (diff)
downloadzig-e7f128c2051b086cdb1c03da041745b560bbaa3e.tar.gz
zig-e7f128c2051b086cdb1c03da041745b560bbaa3e.zip
Merge pull request #14782 from r00ster91/trap
add `@trap` builtin
Diffstat (limited to 'src/codegen/c.zig')
-rw-r--r--src/codegen/c.zig6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/codegen/c.zig b/src/codegen/c.zig
index cf428d4bd6..c0585c3a4a 100644
--- a/src/codegen/c.zig
+++ b/src/codegen/c.zig
@@ -2741,6 +2741,7 @@ fn genBodyInner(f: *Function, body: []const Air.Inst.Index) error{ AnalysisFail,
.const_ty => unreachable, // excluded from function bodies
.arg => try airArg(f, inst),
+ .trap => try airTrap(f.object.writer()),
.breakpoint => try airBreakpoint(f.object.writer()),
.ret_addr => try airRetAddr(f, inst),
.frame_addr => try airFrameAddress(f, inst),
@@ -4428,6 +4429,11 @@ fn airBitcast(f: *Function, inst: Air.Inst.Index) !CValue {
return local;
}
+fn airTrap(writer: anytype) !CValue {
+ try writer.writeAll("zig_trap();\n");
+ return .none;
+}
+
fn airBreakpoint(writer: anytype) !CValue {
try writer.writeAll("zig_breakpoint();\n");
return .none;