@@ -11,7 +11,7 @@ use rustc_codegen_ssa::base::wants_msvc_seh;
11
11
use rustc_codegen_ssa:: common:: IntPredicate ;
12
12
use rustc_codegen_ssa:: errors:: InvalidMonomorphization ;
13
13
use rustc_codegen_ssa:: mir:: operand:: { OperandRef , OperandValue } ;
14
- use rustc_codegen_ssa:: mir:: place:: PlaceRef ;
14
+ use rustc_codegen_ssa:: mir:: place:: { PlaceRef , PlaceValue } ;
15
15
use rustc_codegen_ssa:: traits:: {
16
16
ArgAbiMethods , BuilderMethods , ConstMethods , IntrinsicCallMethods ,
17
17
} ;
@@ -502,7 +502,7 @@ impl<'gcc, 'tcx> ArgAbiExt<'gcc, 'tcx> for ArgAbi<'tcx, Ty<'tcx>> {
502
502
return ;
503
503
}
504
504
if self . is_sized_indirect ( ) {
505
- OperandValue :: Ref ( val, None , self . layout . align . abi ) . store ( bx, dst)
505
+ OperandValue :: Ref ( PlaceValue :: new_sized ( val, self . layout . align . abi ) ) . store ( bx, dst)
506
506
} else if self . is_unsized_indirect ( ) {
507
507
bug ! ( "unsized `ArgAbi` must be handled through `store_fn_arg`" ) ;
508
508
} else if let PassMode :: Cast { ref cast, .. } = self . mode {
@@ -571,7 +571,12 @@ impl<'gcc, 'tcx> ArgAbiExt<'gcc, 'tcx> for ArgAbi<'tcx, Ty<'tcx>> {
571
571
OperandValue :: Pair ( next ( ) , next ( ) ) . store ( bx, dst) ;
572
572
}
573
573
PassMode :: Indirect { meta_attrs : Some ( _) , .. } => {
574
- OperandValue :: Ref ( next ( ) , Some ( next ( ) ) , self . layout . align . abi ) . store ( bx, dst) ;
574
+ let place_val = PlaceValue {
575
+ llval : next ( ) ,
576
+ llextra : Some ( next ( ) ) ,
577
+ align : self . layout . align . abi ,
578
+ } ;
579
+ OperandValue :: Ref ( place_val) . store ( bx, dst) ;
575
580
}
576
581
PassMode :: Direct ( _)
577
582
| PassMode :: Indirect { meta_attrs : None , .. }
0 commit comments