diff --git a/src/librustc_trans/abi.rs b/src/librustc_trans/abi.rs index 5dc2e992972b..ee295bdf0b4c 100644 --- a/src/librustc_trans/abi.rs +++ b/src/librustc_trans/abi.rs @@ -37,6 +37,7 @@ use type_of; use rustc::hir; use rustc::ty::{self, Ty}; use rustc::ty::layout::{self, Layout, LayoutTyper, TyLayout, Size}; +use rustc_back::PanicStrategy; use libc::c_uint; use std::cmp; @@ -761,7 +762,8 @@ impl<'a, 'tcx> FnType<'tcx> { let is_freeze = ccx.shared().type_is_freeze(mt.ty); let no_alias_is_safe = - if ccx.shared().tcx().sess.opts.debugging_opts.mutable_noalias { + if ccx.shared().tcx().sess.opts.debugging_opts.mutable_noalias || + ccx.shared().tcx().sess.panic_strategy() == PanicStrategy::Abort { // Mutable refrences or immutable shared references mt.mutbl == hir::MutMutable || is_freeze } else {