aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacob Young <jacobly0@users.noreply.github.com>2022-12-19 05:49:15 -0500
committerJacob Young <jacobly0@users.noreply.github.com>2022-12-19 05:59:45 -0500
commit0768115b01f01ab1c75da3e42ffcdc99078eaad2 (patch)
tree94262cb3925ffadbfc80165e949c7e5e2e6cade7
parent202e8a0589b4e02dac0694e3eb30ac0b51ec3f6c (diff)
downloadzig-0768115b01f01ab1c75da3e42ffcdc99078eaad2.tar.gz
zig-0768115b01f01ab1c75da3e42ffcdc99078eaad2.zip
behavior: disable failing test
Also add an assert to catch this issue earlier. For future reference, the decl without a type and value is the string literal "GET".
-rw-r--r--src/value.zig12
-rw-r--r--test/behavior/bugs/3742.zig2
2 files changed, 12 insertions, 2 deletions
diff --git a/src/value.zig b/src/value.zig
index 839b3d7580..2d676f51d3 100644
--- a/src/value.zig
+++ b/src/value.zig
@@ -2915,8 +2915,16 @@ pub const Value = extern union {
.field_ptr => val.castTag(.field_ptr).?.data.container_ptr.isVariable(mod),
.eu_payload_ptr => val.castTag(.eu_payload_ptr).?.data.container_ptr.isVariable(mod),
.opt_payload_ptr => val.castTag(.opt_payload_ptr).?.data.container_ptr.isVariable(mod),
- .decl_ref => mod.declPtr(val.castTag(.decl_ref).?.data).val.isVariable(mod),
- .decl_ref_mut => mod.declPtr(val.castTag(.decl_ref_mut).?.data.decl_index).val.isVariable(mod),
+ .decl_ref => {
+ const decl = mod.declPtr(val.castTag(.decl_ref).?.data);
+ assert(decl.has_tv);
+ return decl.val.isVariable(mod);
+ },
+ .decl_ref_mut => {
+ const decl = mod.declPtr(val.castTag(.decl_ref_mut).?.data.decl_index);
+ assert(decl.has_tv);
+ return decl.val.isVariable(mod);
+ },
.variable => true,
else => false,
diff --git a/test/behavior/bugs/3742.zig b/test/behavior/bugs/3742.zig
index ab5ee92023..a984f0d8e4 100644
--- a/test/behavior/bugs/3742.zig
+++ b/test/behavior/bugs/3742.zig
@@ -39,5 +39,7 @@ test "fixed" {
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
+ if (builtin.zig_backend == .stage2_llvm and
+ builtin.cpu.arch == .aarch64 and builtin.os.tag == .windows) return error.SkipZigTest;
ArgSerializer.serializeCommand(GET.init("banana"));
}