fn landing_pad_to(&mut self, target_bb: mir::BasicBlock) -> Block<'bcx, 'tcx>
    {
        if let Some(block) = self.landing_pads[target_bb] {
            return block;
        }

        if base::wants_msvc_seh(self.fcx.ccx.sess()) {
            return self.blocks[target_bb];
        }

        let target = self.bcx(target_bb);

        let block = self.fcx.new_block("cleanup", None);
        self.landing_pads[target_bb] = Some(block);

        let bcx = block.build();
        let ccx = bcx.ccx();
        let llpersonality = self.fcx.eh_personality();
        let llretty = Type::struct_(ccx, &[Type::i8p(ccx), Type::i32(ccx)], false);
        let llretval = bcx.landing_pad(llretty, llpersonality, 1, self.fcx.llfn);
        bcx.set_cleanup(llretval);
        let slot = self.get_personality_slot(&bcx);
        bcx.store(llretval, slot);
        bcx.br(target.llbb());
        block
    }
/// Return the landingpad wrapper around the given basic block
///
/// No-op in MSVC SEH scheme.
Return the landingpad wrapper around the given basic block
No-op in MSVC SEH scheme.
Return the landingpad wrapper around the given basic block No - op in MSVC SEH scheme .
fn landing_pad_to(&mut self, target_bb: mir::BasicBlock) -> Block<'bcx, 'tcx>
    {
        if let Some(block) = self.landing_pads[target_bb] {
            return block;
        }
        if base::wants_msvc_seh(self.fcx.ccx.sess()) {
            return self.blocks[target_bb];
        }
        let target = self.bcx(target_bb);
        let block = self.fcx.new_block("cleanup", None);
        self.landing_pads[target_bb] = Some(block);
        let bcx = block.build();
        let ccx = bcx.ccx();
        let llpersonality = self.fcx.eh_personality();
        let llretty = Type::struct_(ccx, &[Type::i8p(ccx), Type::i32(ccx)], false);
        let llretval = bcx.landing_pad(llretty, llpersonality, 1, self.fcx.llfn);
        bcx.set_cleanup(llretval);
        let slot = self.get_personality_slot(&bcx);
        bcx.store(llretval, slot);
        bcx.br(target.llbb());
        block
    }
fn landing_pad_to ( & mut self , target_bb : mir :: BasicBlock ) -> Block < ' bcx , ' tcx > { if let Some ( block ) = self . landing_pads [ target_bb ] { return block ; } if base :: wants_msvc_seh ( self . fcx . ccx . sess ( ) ) { return self . blocks [ target_bb ] ; } let target = self . bcx ( target_bb ) ; let block = self . fcx . new_block ( " " , None ) ; self . landing_pads [ target_bb ] = Some ( block ) ; let bcx = block . build ( ) ; let ccx = bcx . ccx ( ) ; let llpersonality = self . fcx . eh_personality ( ) ; let llretty = Type :: struct_ ( ccx , & [ Type :: i8p ( ccx ) , Type :: i32 ( ccx ) ] , false ) ; let llretval = bcx . landing_pad ( llretty , llpersonality , 1 , self . fcx . llfn ) ; bcx . set_cleanup ( llretval ) ; let slot = self . get_personality_slot ( & bcx ) ; bcx . store ( llretval , slot ) ; bcx . br ( target . llbb ( ) ) ; block }
Return the landingpad wrapper around the given basic block
No-op in MSVC SEH scheme.
Return the landingpad wrapper around the given basic block No - op in MSVC SEH scheme .
&mut self
target_bb
mir::BasicBlock
&mut self
target_bb
mir::BasicBlock