Mark immutable globals as read-only with LValue::global_set_readonly
This commit is contained in:
parent
f26eb5a7a2
commit
10a9c0e57f
@ -47,7 +47,10 @@ impl<'gcc, 'tcx> StaticMethods for CodegenCx<'gcc, 'tcx> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
let global_value = self.static_addr_of_mut(cv, align, kind);
|
let global_value = self.static_addr_of_mut(cv, align, kind);
|
||||||
// TODO(antoyo): set global constant.
|
#[cfg(feature = "master")]
|
||||||
|
self.global_lvalues.borrow().get(&global_value)
|
||||||
|
.expect("`static_addr_of_mut` did not add the global to `self.global_lvalues`")
|
||||||
|
.global_set_readonly();
|
||||||
self.const_globals.borrow_mut().insert(cv, global_value);
|
self.const_globals.borrow_mut().insert(cv, global_value);
|
||||||
global_value
|
global_value
|
||||||
}
|
}
|
||||||
@ -88,7 +91,8 @@ impl<'gcc, 'tcx> StaticMethods for CodegenCx<'gcc, 'tcx> {
|
|||||||
// mutability are placed into read-only memory.
|
// mutability are placed into read-only memory.
|
||||||
if !is_mutable {
|
if !is_mutable {
|
||||||
if self.type_is_freeze(ty) {
|
if self.type_is_freeze(ty) {
|
||||||
// TODO(antoyo): set global constant.
|
#[cfg(feature = "master")]
|
||||||
|
global.global_set_readonly();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user