aboutsummaryrefslogtreecommitdiff
path: root/test/cases
diff options
context:
space:
mode:
authorzooster <r00ster91@proton.me>2023-05-18 23:00:35 +0200
committerGitHub <noreply@github.com>2023-05-18 17:00:35 -0400
commit3d64ed0353ba7ec1ca46f4779fe5d32af8d17358 (patch)
tree71f63ffcc5da6ea49c80d3aefa095b9178dac57b /test/cases
parent7cf2cbb33ef34c1d211135f56d30fe23b6cacd42 (diff)
downloadzig-3d64ed0353ba7ec1ca46f4779fe5d32af8d17358.tar.gz
zig-3d64ed0353ba7ec1ca46f4779fe5d32af8d17358.zip
make `@trap` return unreachable/noreturn (#15749)
`@trap` is a special function that we know never returns so it should behave just like `@panic` and `@compileError` do currently and cause the "unreachable code" + "control flow is diverted here" compile error. Currently, `@trap(); @trap();` does not cause this error. Now it does.
Diffstat (limited to 'test/cases')
-rw-r--r--test/cases/compile_errors/noreturn_builtins_divert_control_flow.zig23
1 files changed, 23 insertions, 0 deletions
diff --git a/test/cases/compile_errors/noreturn_builtins_divert_control_flow.zig b/test/cases/compile_errors/noreturn_builtins_divert_control_flow.zig
new file mode 100644
index 0000000000..32627f1652
--- /dev/null
+++ b/test/cases/compile_errors/noreturn_builtins_divert_control_flow.zig
@@ -0,0 +1,23 @@
+export fn entry1() void {
+ @trap();
+ @trap();
+}
+export fn entry2() void {
+ @panic("");
+ @panic("");
+}
+export fn entry3() void {
+ @compileError("");
+ @compileError("");
+}
+
+// error
+// backend=stage2
+// target=native
+//
+// :3:5: error: unreachable code
+// :2:5: note: control flow is diverted here
+// :7:5: error: unreachable code
+// :6:5: note: control flow is diverted here
+// :11:5: error: unreachable code
+// :10:5: note: control flow is diverted here