aboutsummaryrefslogtreecommitdiff
path: root/src/Sema.zig
diff options
context:
space:
mode:
authorJacob Young <jacobly0@users.noreply.github.com>2023-03-27 06:55:48 -0400
committerVeikka Tuominen <git@vexu.eu>2023-03-28 23:12:19 +0300
commitdd66e0addb30d795a04324096c913ca89ccbcf40 (patch)
tree928cf49e81d9047d629ff40832719d40dd3cca0f /src/Sema.zig
parent2b805526033b0446fba7f38990df707204e7e23a (diff)
downloadzig-dd66e0addb30d795a04324096c913ca89ccbcf40.tar.gz
zig-dd66e0addb30d795a04324096c913ca89ccbcf40.zip
Sema: fix empty slice pointer value
We just checked that inst_child_ty was effectively a zero-bit type, so it is certainly not the non-zero alignment we are looking for. Closes #15085
Diffstat (limited to 'src/Sema.zig')
-rw-r--r--src/Sema.zig7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/Sema.zig b/src/Sema.zig
index 13327657a8..1f375853cb 100644
--- a/src/Sema.zig
+++ b/src/Sema.zig
@@ -25152,7 +25152,7 @@ fn coerceExtra(
.ptr = if (dest_info.@"align" != 0)
try Value.Tag.int_u64.create(sema.arena, dest_info.@"align")
else
- try inst_child_ty.lazyAbiAlignment(target, sema.arena),
+ try dest_info.pointee_type.lazyAbiAlignment(target, sema.arena),
.len = Value.zero,
});
return sema.addConstant(dest_ty, slice_val);
@@ -30213,6 +30213,11 @@ fn resolveLazyValue(sema: *Sema, val: Value) CompileError!void {
try sema.resolveLazyValue(elem_val);
}
},
+ .slice => {
+ const slice = val.castTag(.slice).?.data;
+ try sema.resolveLazyValue(slice.ptr);
+ return sema.resolveLazyValue(slice.len);
+ },
else => return,
}
}