about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/librustc_trans/abi.rs4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/librustc_trans/abi.rs b/src/librustc_trans/abi.rs
index 5dc2e992972..ee295bdf0b4 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 {