From adf07183165eb910be6f8b13ae0192dab6ed59e7 Mon Sep 17 00:00:00 2001 From: r00ster91 Date: Thu, 15 Jun 2023 03:22:25 -0400 Subject: [PATCH] behavior: boolean vector with 2 or more elements Closes #12169 --- test/behavior/vector.zig | 18 ++++++++++++++++++ .../compile_errors/as_many_ptr_undefined.zig | 10 ++++++++++ 2 files changed, 28 insertions(+) create mode 100644 test/cases/compile_errors/as_many_ptr_undefined.zig 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 : + 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