diff --git a/src/librustc/back/upcall.rs b/src/librustc/back/upcall.rs index 0ad53c4d49c1a..1bf69302b711a 100644 --- a/src/librustc/back/upcall.rs +++ b/src/librustc/back/upcall.rs @@ -17,7 +17,6 @@ use lib::llvm::{ModuleRef, ValueRef}; pub struct Upcalls { trace: ValueRef, rust_personality: ValueRef, - reset_stack_limit: ValueRef } macro_rules! upcall ( @@ -25,12 +24,6 @@ macro_rules! upcall ( let fn_ty = Type::func([ $($arg),* ], &$ret); base::decl_cdecl_fn(llmod, ~"upcall_" + stringify!($name), fn_ty) }); - (nothrow fn $name:ident($($arg:expr),+) -> $ret:expr) => ({ - let fn_ty = Type::func([ $($arg),* ], &$ret); - let decl = base::decl_cdecl_fn(llmod, ~"upcall_" + stringify!($name), fn_ty); - base::set_no_unwind(decl); - decl - }); (nothrow fn $name:ident -> $ret:expr) => ({ let fn_ty = Type::func([], &$ret); let decl = base::decl_cdecl_fn(llmod, ~"upcall_" + stringify!($name), fn_ty); @@ -46,6 +39,5 @@ pub fn declare_upcalls(targ_cfg: @session::config, llmod: ModuleRef) -> @Upcalls @Upcalls { trace: upcall!(fn trace(opaque_ptr, opaque_ptr, int_ty) -> Type::void()), rust_personality: upcall!(nothrow fn rust_personality -> Type::i32()), - reset_stack_limit: upcall!(nothrow fn reset_stack_limit -> Type::void()) } } diff --git a/src/librustc/middle/trans/base.rs b/src/librustc/middle/trans/base.rs index 16c0e052f5fcd..920305b67edcb 100644 --- a/src/librustc/middle/trans/base.rs +++ b/src/librustc/middle/trans/base.rs @@ -1012,11 +1012,6 @@ pub fn get_landing_pad(bcx: @mut Block) -> BasicBlockRef { // The landing pad block is a cleanup SetCleanup(pad_bcx, llretval); - // Because we may have unwound across a stack boundary, we must call into - // the runtime to figure out which stack segment we are on and place the - // stack limit back into the TLS. - Call(pad_bcx, bcx.ccx().upcalls.reset_stack_limit, [], []); - // We store the retval in a function-central alloca, so that calls to // Resume can find it. match bcx.fcx.personality {