@@ -100,7 +100,10 @@ impl<'tcx> ArgAbiExt<'tcx> for ArgAbi<'tcx, Ty<'tcx>> {
100100 }
101101 _ => unreachable ! ( "{:?}" , self . layout. abi) ,
102102 } ,
103- PassMode :: Cast ( ref cast) => cast_target_to_abi_params ( cast) ,
103+ PassMode :: Cast ( ref cast, pad_i32) => {
104+ assert ! ( !pad_i32, "padding support not yet implemented" ) ;
105+ cast_target_to_abi_params ( cast)
106+ }
104107 PassMode :: Indirect { attrs, extra_attrs : None , on_stack } => {
105108 if on_stack {
106109 // Abi requires aligning struct size to pointer size
@@ -145,7 +148,7 @@ impl<'tcx> ArgAbiExt<'tcx> for ArgAbi<'tcx, Ty<'tcx>> {
145148 }
146149 _ => unreachable ! ( "{:?}" , self . layout. abi) ,
147150 } ,
148- PassMode :: Cast ( ref cast) => {
151+ PassMode :: Cast ( ref cast, _ ) => {
149152 ( None , cast_target_to_abi_params ( cast) . into_iter ( ) . collect ( ) )
150153 }
151154 PassMode :: Indirect { attrs : _, extra_attrs : None , on_stack } => {
@@ -226,7 +229,7 @@ pub(super) fn adjust_arg_for_abi<'tcx>(
226229 let ( a, b) = arg. load_scalar_pair ( fx) ;
227230 smallvec ! [ a, b]
228231 }
229- PassMode :: Cast ( ref cast) => to_casted_value ( fx, arg, cast) ,
232+ PassMode :: Cast ( ref cast, _ ) => to_casted_value ( fx, arg, cast) ,
230233 PassMode :: Indirect { .. } => {
231234 if is_owned {
232235 match arg. force_stack ( fx) {
@@ -284,7 +287,7 @@ pub(super) fn cvalue_for_param<'tcx>(
284287 assert_eq ! ( block_params. len( ) , 2 , "{:?}" , block_params) ;
285288 Some ( CValue :: by_val_pair ( block_params[ 0 ] , block_params[ 1 ] , arg_abi. layout ) )
286289 }
287- PassMode :: Cast ( ref cast) => {
290+ PassMode :: Cast ( ref cast, _ ) => {
288291 Some ( from_casted_value ( fx, & block_params, arg_abi. layout , cast) )
289292 }
290293 PassMode :: Indirect { attrs : _, extra_attrs : None , on_stack : _ } => {
0 commit comments