aboutsummaryrefslogtreecommitdiff
path: root/src/llvm.cff
diff options
context:
space:
mode:
Diffstat (limited to 'src/llvm.cff')
-rw-r--r--src/llvm.cff8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/llvm.cff b/src/llvm.cff
index def9346..bb6af3f 100644
--- a/src/llvm.cff
+++ b/src/llvm.cff
@@ -56,17 +56,15 @@ extern fn genagg(ty *const Type) void {
gen("{ %t, ", agg.enumty);
let size = ty.size;
let ty *const Type = #null;
+ let off isize #?;
foreach (fld, i, agg.flds) {
if ty == #null or (fld.ty != #null and fld.ty.align > ty.align) {
ty = fld.ty;
+ off = fld.off;
}
}
ty = ty ?? ty_void;
- gen(" %t ", ty);
- if ty.size < size {
- gen(", [%z x i8] ", size - ty.size);
- }
- gen("}");
+ gen(" %t, [%z x i8] }", ty, size - ty.size - off);
}
}