mirror of
https://github.com/roc-lang/roc.git
synced 2025-09-28 14:24:45 +00:00
Merge pull request #2281 from rtfeldman/i/2149
(llvm) Generate code for tag unions less than 64 bits in size correctly
This commit is contained in:
commit
249878cbd9
7 changed files with 69 additions and 50 deletions
|
@ -830,7 +830,9 @@ impl<'a> WasmBackend<'a> {
|
|||
// Store the tag ID (if any)
|
||||
if stores_tag_id_as_data {
|
||||
let id_offset = data_offset + data_size - data_alignment;
|
||||
let id_align = Align::from(data_alignment);
|
||||
|
||||
let id_align = union_layout.tag_id_builtin().alignment_bytes(PTR_SIZE);
|
||||
let id_align = Align::from(id_align);
|
||||
|
||||
self.code_builder.get_local(local_id);
|
||||
|
||||
|
@ -912,7 +914,9 @@ impl<'a> WasmBackend<'a> {
|
|||
if union_layout.stores_tag_id_as_data(PTR_SIZE) {
|
||||
let (data_size, data_alignment) = union_layout.data_size_and_alignment(PTR_SIZE);
|
||||
let id_offset = data_size - data_alignment;
|
||||
let id_align = Align::from(data_alignment);
|
||||
|
||||
let id_align = union_layout.tag_id_builtin().alignment_bytes(PTR_SIZE);
|
||||
let id_align = Align::from(id_align);
|
||||
|
||||
self.storage
|
||||
.load_symbols(&mut self.code_builder, &[structure]);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue