mirror of
https://github.com/roc-lang/roc.git
synced 2025-09-28 22:34:45 +00:00
fix stack size of empty tag union
This commit is contained in:
parent
aa08256aef
commit
c09cb4e3ea
5 changed files with 112 additions and 85 deletions
|
@ -594,16 +594,16 @@ impl<
|
|||
let (data_size, data_alignment) =
|
||||
union_layout.data_size_and_alignment(self.target_info);
|
||||
let id_offset = data_size - data_alignment;
|
||||
let id_builtin = union_layout.tag_id_builtin();
|
||||
let discriminant = union_layout.discriminant();
|
||||
|
||||
let size = id_builtin.stack_size(self.target_info);
|
||||
let size = discriminant.stack_size();
|
||||
self.allocation_map.insert(*sym, owned_data);
|
||||
self.symbol_storage_map.insert(
|
||||
*sym,
|
||||
Stack(ReferencedPrimitive {
|
||||
base_offset: union_offset + id_offset as i32,
|
||||
size,
|
||||
sign_extend: matches!(id_builtin, sign_extended_int_builtins!()),
|
||||
sign_extend: false, // tag ids are always unsigned
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue