@@ -565,12 +565,11 @@ impl<'tcx> CPlace<'tcx> {
565
565
}
566
566
567
567
let dst_layout = self . layout ( ) ;
568
- let to_ptr = match self . inner {
568
+ match self . inner {
569
569
CPlaceInner :: Var ( _local, var) => {
570
570
let data = CValue ( from. 0 , dst_layout) . load_scalar ( fx) ;
571
571
let dst_ty = fx. clif_type ( self . layout ( ) . ty ) . unwrap ( ) ;
572
572
transmute_value ( fx, var, data, dst_ty) ;
573
- return ;
574
573
}
575
574
CPlaceInner :: VarPair ( _local, var1, var2) => {
576
575
let ( data1, data2) = if from. layout ( ) . ty == dst_layout. ty {
@@ -583,61 +582,59 @@ impl<'tcx> CPlace<'tcx> {
583
582
let ( dst_ty1, dst_ty2) = fx. clif_pair_type ( self . layout ( ) . ty ) . unwrap ( ) ;
584
583
transmute_value ( fx, var1, data1, dst_ty1) ;
585
584
transmute_value ( fx, var2, data2, dst_ty2) ;
586
- return ;
587
585
}
588
- CPlaceInner :: Addr ( ptr, None ) => {
586
+ CPlaceInner :: Addr ( _, Some ( _) ) => bug ! ( "Can't write value to unsized place {:?}" , self ) ,
587
+ CPlaceInner :: Addr ( to_ptr, None ) => {
589
588
if dst_layout. size == Size :: ZERO || dst_layout. abi == Abi :: Uninhabited {
590
589
return ;
591
590
}
592
- ptr
593
- }
594
- CPlaceInner :: Addr ( _, Some ( _) ) => bug ! ( "Can't write value to unsized place {:?}" , self ) ,
595
- } ;
596
591
597
- let mut flags = MemFlags :: new ( ) ;
598
- flags. set_notrap ( ) ;
599
- match from. layout ( ) . abi {
600
- Abi :: Scalar ( _) => {
601
- let val = from. load_scalar ( fx) ;
602
- to_ptr. store ( fx, val, flags) ;
603
- return ;
604
- }
605
- Abi :: ScalarPair ( a_scalar, b_scalar) => {
606
- let ( value, extra) = from. load_scalar_pair ( fx) ;
607
- let b_offset = scalar_pair_calculate_b_offset ( fx. tcx , a_scalar, b_scalar) ;
608
- to_ptr. store ( fx, value, flags) ;
609
- to_ptr. offset ( fx, b_offset) . store ( fx, extra, flags) ;
610
- return ;
611
- }
612
- _ => { }
613
- }
592
+ let mut flags = MemFlags :: new ( ) ;
593
+ flags. set_notrap ( ) ;
594
+ match from. layout ( ) . abi {
595
+ Abi :: Scalar ( _) => {
596
+ let val = from. load_scalar ( fx) ;
597
+ to_ptr. store ( fx, val, flags) ;
598
+ return ;
599
+ }
600
+ Abi :: ScalarPair ( a_scalar, b_scalar) => {
601
+ let ( value, extra) = from. load_scalar_pair ( fx) ;
602
+ let b_offset = scalar_pair_calculate_b_offset ( fx. tcx , a_scalar, b_scalar) ;
603
+ to_ptr. store ( fx, value, flags) ;
604
+ to_ptr. offset ( fx, b_offset) . store ( fx, extra, flags) ;
605
+ return ;
606
+ }
607
+ _ => { }
608
+ }
614
609
615
- match from. 0 {
616
- CValueInner :: ByVal ( val) => {
617
- to_ptr. store ( fx, val, flags) ;
618
- }
619
- CValueInner :: ByValPair ( _, _) => {
620
- bug ! ( "Non ScalarPair abi {:?} for ByValPair CValue" , dst_layout. abi) ;
621
- }
622
- CValueInner :: ByRef ( from_ptr, None ) => {
623
- let from_addr = from_ptr. get_addr ( fx) ;
624
- let to_addr = to_ptr. get_addr ( fx) ;
625
- let src_layout = from. 1 ;
626
- let size = dst_layout. size . bytes ( ) ;
627
- let src_align = src_layout. align . abi . bytes ( ) as u8 ;
628
- let dst_align = dst_layout. align . abi . bytes ( ) as u8 ;
629
- fx. bcx . emit_small_memory_copy (
630
- fx. target_config ,
631
- to_addr,
632
- from_addr,
633
- size,
634
- dst_align,
635
- src_align,
636
- true ,
637
- flags,
638
- ) ;
610
+ match from. 0 {
611
+ CValueInner :: ByVal ( val) => {
612
+ to_ptr. store ( fx, val, flags) ;
613
+ }
614
+ CValueInner :: ByValPair ( _, _) => {
615
+ bug ! ( "Non ScalarPair abi {:?} for ByValPair CValue" , dst_layout. abi) ;
616
+ }
617
+ CValueInner :: ByRef ( from_ptr, None ) => {
618
+ let from_addr = from_ptr. get_addr ( fx) ;
619
+ let to_addr = to_ptr. get_addr ( fx) ;
620
+ let src_layout = from. 1 ;
621
+ let size = dst_layout. size . bytes ( ) ;
622
+ let src_align = src_layout. align . abi . bytes ( ) as u8 ;
623
+ let dst_align = dst_layout. align . abi . bytes ( ) as u8 ;
624
+ fx. bcx . emit_small_memory_copy (
625
+ fx. target_config ,
626
+ to_addr,
627
+ from_addr,
628
+ size,
629
+ dst_align,
630
+ src_align,
631
+ true ,
632
+ flags,
633
+ ) ;
634
+ }
635
+ CValueInner :: ByRef ( _, Some ( _) ) => todo ! ( ) ,
636
+ }
639
637
}
640
- CValueInner :: ByRef ( _, Some ( _) ) => todo ! ( ) ,
641
638
}
642
639
}
643
640
0 commit comments