about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorMark Simulacrum <mark.simulacrum@gmail.com>2017-05-24 19:50:02 -0600
committerGitHub <noreply@github.com>2017-05-24 19:50:02 -0600
commit8bac98a25285f8855315e802afdfd22fd0c4ddc4 (patch)
tree3dc422eeb7c8f6ac0f23ac03e967b1be04552afe /src/libstd
parent00c87a6486428b072199809b051beea1124f616f (diff)
parent66237afce454db9235525dc715238568c492f54b (diff)
downloadrust-8bac98a25285f8855315e802afdfd22fd0c4ddc4.tar.gz
rust-8bac98a25285f8855315e802afdfd22fd0c4ddc4.zip
Rollup merge of #42141 - ids1024:nobacktrace, r=aturon
Fix building std without backtrace feature, which was broken in ca8b754

Fixes #42139
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/rt.rs5
-rw-r--r--src/libstd/thread/mod.rs3
2 files changed, 8 insertions, 0 deletions
diff --git a/src/libstd/rt.rs b/src/libstd/rt.rs
index acff7faf8a7..06fd838ea06 100644
--- a/src/libstd/rt.rs
+++ b/src/libstd/rt.rs
@@ -35,6 +35,8 @@ fn lang_start(main: fn(), argc: isize, argv: *const *const u8) -> isize {
     use sys_common;
     use sys_common::thread_info;
     use thread::Thread;
+    #[cfg(not(feature = "backtrace"))]
+    use mem;
 
     sys::init();
 
@@ -53,9 +55,12 @@ fn lang_start(main: fn(), argc: isize, argv: *const *const u8) -> isize {
         sys::args::init(argc, argv);
 
         // Let's run some code!
+        #[cfg(feature = "backtrace")]
         let res = panic::catch_unwind(|| {
             ::sys_common::backtrace::__rust_begin_short_backtrace(main)
         });
+        #[cfg(not(feature = "backtrace"))]
+        let res = panic::catch_unwind(mem::transmute::<_, fn()>(main));
         sys_common::cleanup();
         res.is_err()
     };
diff --git a/src/libstd/thread/mod.rs b/src/libstd/thread/mod.rs
index c67f2770190..d0e3b00d75f 100644
--- a/src/libstd/thread/mod.rs
+++ b/src/libstd/thread/mod.rs
@@ -359,9 +359,12 @@ impl Builder {
             }
             unsafe {
                 thread_info::set(imp::guard::current(), their_thread);
+                #[cfg(feature = "backtrace")]
                 let try_result = panic::catch_unwind(panic::AssertUnwindSafe(|| {
                     ::sys_common::backtrace::__rust_begin_short_backtrace(f)
                 }));
+                #[cfg(not(feature = "backtrace"))]
+                let try_result = panic::catch_unwind(panic::AssertUnwindSafe(f));
                 *their_packet.get() = Some(try_result);
             }
         };