about summary refs log tree commit diff
path: root/compiler/rustc_mir_transform/src/check_alignment.rs
diff options
context:
space:
mode:
authorGary Guo <gary@garyguo.net>2023-06-07 21:00:56 +0100
committerGary Guo <gary@garyguo.net>2023-06-07 21:03:51 +0100
commitd9531a0d93f63a8e67e56419e0aadf25a0edd43a (patch)
tree0b928fb7f7d629721b25e964edddfcad8d7ab344 /compiler/rustc_mir_transform/src/check_alignment.rs
parentb2807b2bf3be9fbed9a0aadc97841c20a1ab5f79 (diff)
downloadrust-d9531a0d93f63a8e67e56419e0aadf25a0edd43a.tar.gz
rust-d9531a0d93f63a8e67e56419e0aadf25a0edd43a.zip
Remove wrongly emitted `.eh_frame` in `-Cpanic=abort`
Diffstat (limited to 'compiler/rustc_mir_transform/src/check_alignment.rs')
-rw-r--r--compiler/rustc_mir_transform/src/check_alignment.rs7
1 files changed, 6 insertions, 1 deletions
diff --git a/compiler/rustc_mir_transform/src/check_alignment.rs b/compiler/rustc_mir_transform/src/check_alignment.rs
index 1fe8ea07892..ef64f70fdf3 100644
--- a/compiler/rustc_mir_transform/src/check_alignment.rs
+++ b/compiler/rustc_mir_transform/src/check_alignment.rs
@@ -9,6 +9,7 @@ use rustc_middle::mir::{
 };
 use rustc_middle::ty::{Ty, TyCtxt, TypeAndMut};
 use rustc_session::Session;
+use rustc_target::spec::PanicStrategy;
 
 pub struct CheckAlignment;
 
@@ -236,7 +237,11 @@ fn insert_alignment_check<'tcx>(
                 required: Operand::Copy(alignment),
                 found: Operand::Copy(addr),
             }),
-            unwind: UnwindAction::Terminate,
+            unwind: if tcx.sess.panic_strategy() == PanicStrategy::Unwind {
+                UnwindAction::Terminate
+            } else {
+                UnwindAction::Unreachable
+            },
         },
     });
 }