aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorr00ster91 <r00ster91@proton.me>2023-06-15 03:22:25 -0400
committerr00ster91 <r00ster91@proton.me>2023-06-27 19:57:23 -0400
commitadf07183165eb910be6f8b13ae0192dab6ed59e7 (patch)
treee7abdcf397ada6c2425c9e2502888d0f316bcb15 /test
parentd01641f6be1e9f330be87e45a14bfda60387306b (diff)
downloadzig-adf07183165eb910be6f8b13ae0192dab6ed59e7.tar.gz
zig-adf07183165eb910be6f8b13ae0192dab6ed59e7.zip
behavior: boolean vector with 2 or more elements
Closes #12169
Diffstat (limited to 'test')
-rw-r--r--test/behavior/vector.zig18
-rw-r--r--test/cases/compile_errors/as_many_ptr_undefined.zig10
2 files changed, 28 insertions, 0 deletions
diff --git a/test/behavior/vector.zig b/test/behavior/vector.zig
index 2aab98ea72..c2c2993f84 100644
--- a/test/behavior/vector.zig
+++ b/test/behavior/vector.zig
@@ -1370,3 +1370,21 @@ test "vector pointer is indexable" {
try expectEqual(@as(u32, 100), (&y)[0]);
try expectEqual(@as(u32, 200), (&y)[1]);
}
+
+test "boolean vector with 2 or more booleans" {
+ if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
+ if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
+ if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
+ if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
+ if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
+ if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO
+
+ // TODO: try removing this after <https://github.com/ziglang/zig/issues/13782>:
+ if (!(builtin.os.tag == .linux and builtin.cpu.arch == .x86_64)) return;
+
+ const vec1 = @Vector(2, bool){ true, true };
+ _ = vec1;
+
+ const vec2 = @Vector(3, bool){ true, true, true };
+ _ = vec2;
+}
diff --git a/test/cases/compile_errors/as_many_ptr_undefined.zig b/test/cases/compile_errors/as_many_ptr_undefined.zig
new file mode 100644
index 0000000000..deec465d24
--- /dev/null
+++ b/test/cases/compile_errors/as_many_ptr_undefined.zig
@@ -0,0 +1,10 @@
+export fn entry1() void {
+ const slice = @as([*]i32, undefined)[0];
+ _ = slice;
+}
+
+// error
+// backend=stage2
+// target=native
+//
+// :2:41: error: use of undefined value here causes undefined behavior