about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2014-08-22 09:05:53 +0000
committerbors <bors@rust-lang.org>2014-08-22 09:05:53 +0000
commit19a44c73c246ad98f285aa801433beca674b1ad4 (patch)
tree95f77f4849e47840ca759f13e203137bd967d4d4
parent5fe5e3947bc1dbc7551941aedcd01ec4e45fb00d (diff)
parent69fbef1d87ffc4807ff75676f30c7ea30bb11a96 (diff)
downloadrust-19a44c73c246ad98f285aa801433beca674b1ad4.tar.gz
rust-19a44c73c246ad98f285aa801433beca674b1ad4.zip
auto merge of #16647 : vhbit/rust/ios-build-fixes, r=alexcrichton
-rw-r--r--src/librustrt/unwind.rs5
-rw-r--r--src/libstd/rt/backtrace.rs4
2 files changed, 6 insertions, 3 deletions
diff --git a/src/librustrt/unwind.rs b/src/librustrt/unwind.rs
index 204128cf6be..58012002c4f 100644
--- a/src/librustrt/unwind.rs
+++ b/src/librustrt/unwind.rs
@@ -333,7 +333,10 @@ pub mod eabi {
             uw::_URC_HANDLER_FOUND // catch!
         }
         else { // cleanup phase
-            uw::_URC_INSTALL_CONTEXT
+            unsafe {
+                __gcc_personality_sj0(_version, actions, _exception_class, _ue_header,
+                                      _context)
+            }
         }
     }
 }
diff --git a/src/libstd/rt/backtrace.rs b/src/libstd/rt/backtrace.rs
index 1b005f49b88..42384892e69 100644
--- a/src/libstd/rt/backtrace.rs
+++ b/src/libstd/rt/backtrace.rs
@@ -273,9 +273,9 @@ mod imp {
 
         try!(writeln!(w, "stack backtrace:"));
         // 100 lines should be enough
-        static SIZE: libc::c_int = 100;
+        static SIZE: uint = 100;
         let mut buf: [*mut libc::c_void, ..SIZE] = unsafe {mem::zeroed()};
-        let cnt = unsafe { backtrace(buf.as_mut_ptr(), SIZE) as uint};
+        let cnt = unsafe { backtrace(buf.as_mut_ptr(), SIZE as libc::c_int) as uint};
 
         // skipping the first one as it is write itself
         result::fold_(range(1, cnt).map(|i| {