aboutsummaryrefslogtreecommitdiff
path: root/test/cases/compile_errors
diff options
context:
space:
mode:
authorVeikka Tuominen <git@vexu.eu>2022-07-22 21:10:50 +0300
committerVeikka Tuominen <git@vexu.eu>2022-07-22 21:10:50 +0300
commit423a19fa60d2b0a11fc2fb43b12001320c2c53c5 (patch)
tree61c673ca1e0066e2a7cc718bec5d1361d022a2b7 /test/cases/compile_errors
parent03b1fbe50d302cdb961661c10bb51699b4dcbaf2 (diff)
downloadzig-423a19fa60d2b0a11fc2fb43b12001320c2c53c5.tar.gz
zig-423a19fa60d2b0a11fc2fb43b12001320c2c53c5.zip
Sema: add error for dereferencing invalid payload ptr at comptime
Diffstat (limited to 'test/cases/compile_errors')
-rw-r--r--test/cases/compile_errors/dereferencing_invalid_payload_ptr_at_comptime.zig33
1 files changed, 33 insertions, 0 deletions
diff --git a/test/cases/compile_errors/dereferencing_invalid_payload_ptr_at_comptime.zig b/test/cases/compile_errors/dereferencing_invalid_payload_ptr_at_comptime.zig
new file mode 100644
index 0000000000..69457965bb
--- /dev/null
+++ b/test/cases/compile_errors/dereferencing_invalid_payload_ptr_at_comptime.zig
@@ -0,0 +1,33 @@
+const std = @import("std");
+
+comptime {
+ var val: u8 = 15;
+ var opt_ptr: ?*const u8 = &val;
+
+ const payload_ptr = &opt_ptr.?;
+ opt_ptr = null;
+ _ = payload_ptr.*.*;
+}
+comptime {
+ var opt: ?u8 = 15;
+
+ const payload_ptr = &opt.?;
+ opt = null;
+ _ = payload_ptr.*;
+}
+comptime {
+ var val: u8 = 15;
+ var err_union: anyerror!u8 = val;
+
+ const payload_ptr = &(err_union catch unreachable);
+ err_union = error.Foo;
+ _ = payload_ptr.*;
+}
+
+// error
+// backend=stage2
+// target=native
+//
+// :9:20: error: attempt to use null value
+// :16:20: error: attempt to use null value
+// :24:20: error: attempt to unwrap error: Foo