From afe1ffb19004fc472294b8cacc34c64d28dd9abc Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Tue, 31 Mar 2020 15:25:12 +0200 Subject: [PATCH] remove unnecessary relocation check in const_prop --- src/librustc_mir/transform/const_prop.rs | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/librustc_mir/transform/const_prop.rs b/src/librustc_mir/transform/const_prop.rs index 8e004e45b7a..f1ddf3c635f 100644 --- a/src/librustc_mir/transform/const_prop.rs +++ b/src/librustc_mir/transform/const_prop.rs @@ -274,19 +274,16 @@ fn before_access_global( _memory_extra: &(), _alloc_id: AllocId, allocation: &Allocation, - static_def_id: Option, + _static_def_id: Option, is_write: bool, ) -> InterpResult<'tcx> { if is_write { throw_machine_stop_str!("can't write to global"); } - // If the static allocation is mutable or if it has relocations (it may be legal to mutate - // the memory behind that in the future), then we can't const prop it. + // If the static allocation is mutable, then we can't const prop it as its content + // might be different at runtime. if allocation.mutability == Mutability::Mut { - throw_machine_stop_str!("can't eval mutable globals in ConstProp"); - } - if static_def_id.is_some() && allocation.relocations().len() > 0 { - throw_machine_stop_str!("can't eval statics with pointers in ConstProp"); + throw_machine_stop_str!("can't access mutable globals in ConstProp"); } Ok(())