diff --git a/src/Sema.zig b/src/Sema.zig index 4402a2810076ac8bb322c88c710735d746ca6999..773b7aa66c3de05bac3ef191ce7fb3622f318654 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -22692,7 +22692,7 @@ fn elemPtrSlice( break :o index; } else null; - const elem_ptr_ty = try sema.elemPtrType(slice_ty, null); + const elem_ptr_ty = try sema.elemPtrType(slice_ty, offset); if (maybe_undef_slice_val) |slice_val| { if (slice_val.isUndef()) { diff --git a/test/behavior/align.zig b/test/behavior/align.zig index 51481580cf514f480c5162b839218f378a03aa75..5270aa96926af253fcfd2837d2fe9265012d93e4 100644 --- a/test/behavior/align.zig +++ b/test/behavior/align.zig @@ -564,3 +564,8 @@ test "@alignCast null" { const aligned: ?*anyopaque = @alignCast(@alignOf(?*anyopaque), ptr); try expect(aligned == null); } + +test "alignment of slice element" { + const a: []align(1024) const u8 = undefined; + try expect(@TypeOf(&a[0]) == *align(1024) const u8); +}