compiler: consistently pass layout and alignment to createAlloc

This commit is contained in:
Nia Waldvogel
2026-07-08 13:03:00 -04:00
committed by Ron Evans
parent cf5bed8227
commit cd4e479dd5
11 changed files with 22 additions and 21 deletions
+3 -3
View File
@@ -29,10 +29,10 @@ func (b *builder) createAlloc(sizeValue, layoutValue llvm.Value, align int, comm
// Make the runtime call.
call := b.createRuntimeCall(allocFunc, []llvm.Value{sizeValue, layoutValue}, comment)
if align != 0 {
// TODO: make sure all callsites set the correct alignment.
call.AddCallSiteAttribute(0, b.ctx.CreateEnumAttribute(llvm.AttributeKindID("align"), uint64(align)))
if align == 0 || align&(align-1) != 0 {
panic("invalid alignment")
}
call.AddCallSiteAttribute(0, b.ctx.CreateEnumAttribute(llvm.AttributeKindID("align"), uint64(align)))
return call
}