aboutsummaryrefslogtreecommitdiff
path: root/src/value.zig
diff options
context:
space:
mode:
authorJakub Konka <kubkon@jakubkonka.com>2022-11-20 21:33:05 +0100
committerVeikka Tuominen <git@vexu.eu>2022-11-22 14:01:20 +0200
commit114244f7701c5bda996e852fbadcab76a488bdf6 (patch)
tree8b7709ccbff024355db3335831f2619358d7ab7c /src/value.zig
parent3fa226a80c99dadab91538ef450b22230da9c21f (diff)
downloadzig-114244f7701c5bda996e852fbadcab76a488bdf6.tar.gz
zig-114244f7701c5bda996e852fbadcab76a488bdf6.zip
value: account for undef value for ptr in slice in hashUncoerced
Diffstat (limited to 'src/value.zig')
-rw-r--r--src/value.zig7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/value.zig b/src/value.zig
index 59cf9046f4..43c31905ca 100644
--- a/src/value.zig
+++ b/src/value.zig
@@ -2581,7 +2581,12 @@ pub const Value = extern union {
},
.Float, .ComptimeFloat => std.hash.autoHash(hasher, @bitCast(u128, val.toFloat(f128))),
.Bool, .Int, .ComptimeInt, .Pointer, .Fn => switch (val.tag()) {
- .slice => val.castTag(.slice).?.data.ptr.hashPtr(hasher, mod.getTarget()),
+ .slice => {
+ const slice = val.castTag(.slice).?.data;
+ var ptr_buf: Type.SlicePtrFieldTypeBuffer = undefined;
+ const ptr_ty = ty.slicePtrFieldType(&ptr_buf);
+ slice.ptr.hashUncoerced(ptr_ty, hasher, mod);
+ },
else => val.hashPtr(hasher, mod.getTarget()),
},
.Array, .Vector => {