This commit is contained in:
bjorn3
2019-03-30 17:29:28 +01:00
committed by Benjamin Bouvier
parent cb6268118c
commit 556d5d45e9
2 changed files with 20 additions and 5 deletions

View File

@@ -339,9 +339,20 @@ fn translate_data_linkage(linkage: Linkage, writable: bool, align: Option<u8>) -
let align = align.map(|align| usize::from(align)); let align = align.map(|align| usize::from(align));
match linkage { match linkage {
Linkage::Import => faerie::Decl::data_import().into(), Linkage::Import => faerie::Decl::data_import().into(),
Linkage::Local => faerie::Decl::data().with_writable(writable).with_align(align).into(), Linkage::Local => faerie::Decl::data()
Linkage::Export => faerie::Decl::data().global().with_writable(writable).with_align(align).into(), .with_writable(writable)
Linkage::Preemptible => faerie::Decl::data().weak().with_writable(writable).with_align(align).into(), .with_align(align)
.into(),
Linkage::Export => faerie::Decl::data()
.global()
.with_writable(writable)
.with_align(align)
.into(),
Linkage::Preemptible => faerie::Decl::data()
.weak()
.with_writable(writable)
.with_align(align)
.into(),
} }
} }

View File

@@ -448,8 +448,12 @@ where
FuncOrDataId::Data(id) => { FuncOrDataId::Data(id) => {
let existing = &mut self.contents.data_objects[id]; let existing = &mut self.contents.data_objects[id];
existing.merge(linkage, writable); existing.merge(linkage, writable);
self.backend self.backend.declare_data(
.declare_data(name, existing.decl.linkage, existing.decl.writable, existing.decl.align); name,
existing.decl.linkage,
existing.decl.writable,
existing.decl.align,
);
Ok(id) Ok(id)
} }