about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/rt.rs7
-rw-r--r--src/libstd/sys_common/backtrace.rs2
2 files changed, 4 insertions, 5 deletions
diff --git a/src/libstd/rt.rs b/src/libstd/rt.rs
index 27c20be7a9a..d17dfb25f31 100644
--- a/src/libstd/rt.rs
+++ b/src/libstd/rt.rs
@@ -29,9 +29,8 @@ pub use panicking::{begin_panic, begin_panic_fmt, update_panic_count};
 // To reduce the generated code of the new `lang_start`, this function is doing
 // the real work.
 #[cfg(not(any(test, stage0)))]
-fn lang_start_real<F>(main: F, argc: isize, argv: *const *const u8) -> !
-    where F: FnOnce() -> i32 + Send + ::panic::UnwindSafe + 'static
-{
+fn lang_start_internal(main: &(Fn() -> i32 + Sync + ::panic::RefUnwindSafe),
+                       argc: isize, argv: *const *const u8) -> ! {
     use panic;
     use sys;
     use sys_common;
@@ -75,7 +74,7 @@ fn lang_start_real<F>(main: F, argc: isize, argv: *const *const u8) -> !
 fn lang_start<T: ::termination::Termination + 'static>
     (main: fn() -> T, argc: isize, argv: *const *const u8) -> !
 {
-    lang_start_real(move || main().report(), argc, argv)
+    lang_start_internal(&move || main().report(), argc, argv)
 }
 
 #[cfg(all(not(test), stage0))]
diff --git a/src/libstd/sys_common/backtrace.rs b/src/libstd/sys_common/backtrace.rs
index b5cf6d7d34f..36cbce2df75 100644
--- a/src/libstd/sys_common/backtrace.rs
+++ b/src/libstd/sys_common/backtrace.rs
@@ -128,7 +128,7 @@ fn filter_frames(frames: &[Frame],
 /// Fixed frame used to clean the backtrace with `RUST_BACKTRACE=1`.
 #[inline(never)]
 pub fn __rust_begin_short_backtrace<F, T>(f: F) -> T
-    where F: FnOnce() -> T, F: Send + 'static, T: Send + 'static
+    where F: FnOnce() -> T, F: Send, T: Send
 {
     f()
 }