authorgravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2022-09-07 19:21:12+03:00
committergravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2022-09-08 00:37:11+03:00
log37afab2addab5809e1419a09e3be5ea4f3ee5501
tree44a909a2351c3f3434325c5b38f545d8b7960abd
parent0fa80e66b7e995e560ac1c3da7069c603e9a0538

Sema: preserve alignment of const decl pointers

Closes #12769

2 files changed, 12 insertions(+), 0 deletions(-)

src/Sema.zig+1
......@@ -26005,6 +26005,7 @@ fn analyzeDeclRef(sema: *Sema, decl_index: Decl.Index) CompileError!Air.Inst.Ref
2600526005 .pointee_type = decl_tv.ty,
2600626006 .mutable = false,
2600726007 .@"addrspace" = decl.@"addrspace",
26008 .@"align" = decl.@"align",
2600826009 }),
2600926010 try Value.Tag.decl_ref.create(sema.arena, decl_index),
2601026011 );
test/behavior/pointers.zig+11
......@@ -486,3 +486,14 @@ test "array slicing to slice" {
486486 try S.doTheTest();
487487 comptime try S.doTheTest();
488488}
489
490test "pointer to constant decl preserves alignment" {
491 const S = struct {
492 a: u8,
493 b: u8,
494 const aligned align(8) = @This(){ .a = 3, .b = 4 };
495 };
496
497 const alignment = @typeInfo(@TypeOf(&S.aligned)).Pointer.alignment;
498 try std.testing.expect(alignment == 8);
499}