about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorRalf Jung <post@ralfj.de>2019-11-26 09:24:39 +0100
committerRalf Jung <post@ralfj.de>2019-11-26 09:24:39 +0100
commit3e96ca2bf7f7c558623e372e7a9800ac752faa9c (patch)
tree1eb587ba287c8472ff59b5bf7ca3588cdcf1785d /src/libstd
parent3a8e1b63cfc472a3c4884f6a31ab2236d7dd2fb7 (diff)
downloadrust-3e96ca2bf7f7c558623e372e7a9800ac752faa9c.tar.gz
rust-3e96ca2bf7f7c558623e372e7a9800ac752faa9c.zip
abort on BoxMeUp misuse
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/panicking.rs5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/libstd/panicking.rs b/src/libstd/panicking.rs
index 31dcbc6a7cb..5ba5d89bb63 100644
--- a/src/libstd/panicking.rs
+++ b/src/libstd/panicking.rs
@@ -20,6 +20,7 @@ use crate::sys_common::rwlock::RWLock;
 use crate::sys_common::{thread_info, util};
 use crate::sys_common::backtrace::{self, RustBacktrace};
 use crate::thread;
+use crate::process;
 
 #[cfg(not(test))]
 use crate::io::set_panic;
@@ -414,7 +415,7 @@ pub fn begin_panic<M: Any + Send>(msg: M, file_line_col: &(&'static str, u32, u3
         fn take_box(&mut self) -> *mut (dyn Any + Send) {
             let data = match self.inner.take() {
                 Some(a) => Box::new(a) as Box<dyn Any + Send>,
-                None => Box::new(()), // this should never happen: we got called twice
+                None => process::abort(),
             };
             Box::into_raw(data)
         }
@@ -422,7 +423,7 @@ pub fn begin_panic<M: Any + Send>(msg: M, file_line_col: &(&'static str, u32, u3
         fn get(&mut self) -> &(dyn Any + Send) {
             match self.inner {
                 Some(ref a) => a,
-                None => &(),
+                None => process::abort(),
             }
         }
     }