about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorAlexis Beingessner <a.beingessner@gmail.com>2017-10-04 17:29:37 -0400
committerAlexis Beingessner <a.beingessner@gmail.com>2017-10-04 17:29:37 -0400
commita6dea41d64a244c8f7671dd0eeb498b015c3a712 (patch)
tree7493dfd65324b0f4e1992a16d7024ef7fd5b1b17 /src
parent36471293e60f5750ecc728c22ade04013e962929 (diff)
downloadrust-a6dea41d64a244c8f7671dd0eeb498b015c3a712.tar.gz
rust-a6dea41d64a244c8f7671dd0eeb498b015c3a712.zip
Make -Cpanic=abort imply -Zmutable-noalias
Diffstat (limited to 'src')
-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 {