pub fn eh_unwind_resume(&self) -> ValueRef {
        use attributes;
        let unwresume = &self.local().eh_unwind_resume;
        if let Some(llfn) = unwresume.get() {
            return llfn;
        }

        let tcx = self.tcx();
        assert!(self.sess().target.target.options.custom_unwind_resume);
        if let Some(def_id) = tcx.lang_items.eh_unwind_resume() {
            let llfn = Callee::def(self, def_id, tcx.intern_substs(&[])).reify(self);
            unwresume.set(Some(llfn));
            return llfn;
        }

        let ty = tcx.mk_fn_ptr(tcx.mk_bare_fn(ty::BareFnTy {
            unsafety: hir::Unsafety::Unsafe,
            abi: Abi::C,
            sig: ty::Binder(tcx.mk_fn_sig(
                iter::once(tcx.mk_mut_ptr(tcx.types.u8)),
                tcx.types.never,
                false
            )),
        }));

        let llfn = declare::declare_fn(self, "rust_eh_unwind_resume", ty);
        attributes::unwind(llfn, true);
        unwresume.set(Some(llfn));
        llfn
    }
// Returns a ValueRef of the "eh_unwind_resume" lang item if one is defined,
// otherwise declares it as an external function.
Returns a ValueRef of the "eh_unwind_resume" lang item if one is defined,
otherwise declares it as an external function.
Returns a ValueRef of the " eh_unwind_resume " lang item if one is defined otherwise declares it as an external function .
pub fn eh_unwind_resume(&self) -> ValueRef {
        use attributes;
        let unwresume = &self.local().eh_unwind_resume;
        if let Some(llfn) = unwresume.get() {
            return llfn;
        }
        let tcx = self.tcx();
        assert!(self.sess().target.target.options.custom_unwind_resume);
        if let Some(def_id) = tcx.lang_items.eh_unwind_resume() {
            let llfn = Callee::def(self, def_id, tcx.intern_substs(&[])).reify(self);
            unwresume.set(Some(llfn));
            return llfn;
        }
        let ty = tcx.mk_fn_ptr(tcx.mk_bare_fn(ty::BareFnTy {
            unsafety: hir::Unsafety::Unsafe,
            abi: Abi::C,
            sig: ty::Binder(tcx.mk_fn_sig(
                iter::once(tcx.mk_mut_ptr(tcx.types.u8)),
                tcx.types.never,
                false
            )),
        }));
        let llfn = declare::declare_fn(self, "rust_eh_unwind_resume", ty);
        attributes::unwind(llfn, true);
        unwresume.set(Some(llfn));
        llfn
    }
pub fn eh_unwind_resume ( & self ) -> ValueRef { use attributes ; let unwresume = & self . local ( ) . eh_unwind_resume ; if let Some ( llfn ) = unwresume . get ( ) { return llfn ; } let tcx = self . tcx ( ) ; assert ! ( self sess ( ) target target options custom_unwind_resume ) ; if let Some ( def_id ) = tcx . lang_items . eh_unwind_resume ( ) { let llfn = Callee :: def ( self , def_id , tcx . intern_substs ( & [ ] ) ) . reify ( self ) ; unwresume . set ( Some ( llfn ) ) ; return llfn ; } let ty = tcx . mk_fn_ptr ( tcx . mk_bare_fn ( ty :: BareFnTy { unsafety : hir :: Unsafety :: Unsafe , abi : Abi :: C , sig : ty :: Binder ( tcx . mk_fn_sig ( iter :: once ( tcx . mk_mut_ptr ( tcx . types . u8 ) ) , tcx . types . never , false ) ) , } ) ) ; let llfn = declare :: declare_fn ( self , " " , ty ) ; attributes :: unwind ( llfn , true ) ; unwresume . set ( Some ( llfn ) ) ; llfn }
Returns a ValueRef of the "eh_unwind_resume" lang item if one is defined,
otherwise declares it as an external function.
Returns a ValueRef of the " eh_unwind_resume " lang item if one is defined otherwise declares it as an external function .
&self
&self