diff --git a/cranelift/module/src/module.rs b/cranelift/module/src/module.rs index 7451e2fda4..3da6c37810 100644 --- a/cranelift/module/src/module.rs +++ b/cranelift/module/src/module.rs @@ -203,9 +203,10 @@ impl ModuleData where B: Backend, { - fn merge(&mut self, linkage: Linkage, writable: bool) { + fn merge(&mut self, linkage: Linkage, writable: bool, align: Option) { self.decl.linkage = Linkage::merge(self.decl.linkage, linkage); self.decl.writable = self.decl.writable || writable; + self.decl.align = self.decl.align.max(align); } } @@ -447,7 +448,7 @@ where Occupied(entry) => match *entry.get() { FuncOrDataId::Data(id) => { let existing = &mut self.contents.data_objects[id]; - existing.merge(linkage, writable); + existing.merge(linkage, writable, align); self.backend.declare_data( name, existing.decl.linkage,