diff options
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 943f0adf6b..dcc38e4c0a 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -24822,8 +24822,13 @@ fn coerceExtra( // empty tuple to zero-length slice // note that this allows coercing to a mutable slice. if (inst_child_ty.structFieldCount() == 0) { + // Optional slice is represented with a null pointer so + // we use a dummy pointer value with the required alignment. const slice_val = try Value.Tag.slice.create(sema.arena, .{ - .ptr = Value.undef, + .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), .len = Value.zero, }); return sema.addConstant(dest_ty, slice_val); |
