pub fn codegen_funcall_of_intrinsic(
        &mut self,
        func: &Operand<'tcx>,
        args: &[Operand<'tcx>],
        destination: &Option<(Place<'tcx>, BasicBlock)>,
        span: Span,
    ) -> Stmt {
        let instance = self.get_intrinsic_instance(func).unwrap();

        if let Some((assign_to, target)) = destination {
            let loc = self.codegen_span(&span);
            let fargs = self.codegen_funcall_args(args);
            Stmt::block(
                vec![
                    self.codegen_intrinsic(instance, fargs, &assign_to, Some(span)),
                    Stmt::goto(self.current_fn().find_label(&target), loc),
                ],
                loc,
            )
        } else {
            self.codegen_never_return_intrinsic(instance, Some(span))
        }
    }
/// Given a call to an compiler intrinsic, generate the call and the `goto` terminator
/// Note that in some cases, the intrinsic might never return (e.g. `panic`) in which case
/// there is no terminator.
Given a call to an compiler intrinsic, generate the call and the `goto` terminator
Note that in some cases, the intrinsic might never return  in which case
there is no terminator.
Given a call to an compiler intrinsic generate the call and the ` goto ` terminator Note that in some cases the intrinsic might never return in which case there is no terminator .
pub fn codegen_funcall_of_intrinsic(
        &mut self,
        func: &Operand<'tcx>,
        args: &[Operand<'tcx>],
        destination: &Option<(Place<'tcx>, BasicBlock)>,
        span: Span,
    ) -> Stmt {
        let instance = self.get_intrinsic_instance(func).unwrap();
        if let Some((assign_to, target)) = destination {
            let loc = self.codegen_span(&span);
            let fargs = self.codegen_funcall_args(args);
            Stmt::block(
                vec![
                    self.codegen_intrinsic(instance, fargs, &assign_to, Some(span)),
                    Stmt::goto(self.current_fn().find_label(&target), loc),
                ],
                loc,
            )
        } else {
            self.codegen_never_return_intrinsic(instance, Some(span))
        }
    }
pub fn codegen_funcall_of_intrinsic ( & mut self , func : & Operand < ' tcx > , args : & [ Operand < ' tcx > ] , destination : & Option < ( Place < ' tcx > , BasicBlock ) > , span : Span , ) -> Stmt { let instance = self . get_intrinsic_instance ( func ) . unwrap ( ) ; if let Some ( ( assign_to , target ) ) = destination { let loc = self . codegen_span ( & span ) ; let fargs = self . codegen_funcall_args ( args ) ; Stmt :: block ( vec ! [ self codegen_intrinsic ( instance fargs assign_to Some ( span ) ) Stmt goto ( self current_fn ( ) find_label ( target ) loc ) ] , loc , ) } else { self . codegen_never_return_intrinsic ( instance , Some ( span ) ) } }
Given a call to an compiler intrinsic, generate the call and the `goto` terminator
Note that in some cases, the intrinsic might never return (e.g.
Given a call to an compiler intrinsic generate the call and the ` goto ` terminator Note that in some cases the intrinsic might never return ( e . g .
&mut self
func
&Operand<'tcx>
args
&[Operand<'tcx>]
destination
&Option<(Place<'tcx>, BasicBlock)>
span
Span