diff options
| author | Jacob Young <jacobly0@users.noreply.github.com> | 2023-03-27 06:55:48 -0400 |
|---|---|---|
| committer | Veikka Tuominen <git@vexu.eu> | 2023-03-28 23:12:19 +0300 |
| commit | dd66e0addb30d795a04324096c913ca89ccbcf40 (patch) | |
| tree | 928cf49e81d9047d629ff40832719d40dd3cca0f /src/Sema.zig | |
| parent | 2b805526033b0446fba7f38990df707204e7e23a (diff) | |
| download | zig-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.zig | 7 |
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, } } |
