@@ -100,7 +100,10 @@ impl<'tcx> ArgAbiExt<'tcx> for ArgAbi<'tcx, Ty<'tcx>> {
100
100
}
101
101
_ => unreachable ! ( "{:?}" , self . layout. abi) ,
102
102
} ,
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
+ }
104
107
PassMode :: Indirect { attrs, extra_attrs : None , on_stack } => {
105
108
if on_stack {
106
109
// Abi requires aligning struct size to pointer size
@@ -145,7 +148,7 @@ impl<'tcx> ArgAbiExt<'tcx> for ArgAbi<'tcx, Ty<'tcx>> {
145
148
}
146
149
_ => unreachable ! ( "{:?}" , self . layout. abi) ,
147
150
} ,
148
- PassMode :: Cast ( ref cast) => {
151
+ PassMode :: Cast ( ref cast, _ ) => {
149
152
( None , cast_target_to_abi_params ( cast) . into_iter ( ) . collect ( ) )
150
153
}
151
154
PassMode :: Indirect { attrs : _, extra_attrs : None , on_stack } => {
@@ -226,7 +229,7 @@ pub(super) fn adjust_arg_for_abi<'tcx>(
226
229
let ( a, b) = arg. load_scalar_pair ( fx) ;
227
230
smallvec ! [ a, b]
228
231
}
229
- PassMode :: Cast ( ref cast) => to_casted_value ( fx, arg, cast) ,
232
+ PassMode :: Cast ( ref cast, _ ) => to_casted_value ( fx, arg, cast) ,
230
233
PassMode :: Indirect { .. } => {
231
234
if is_owned {
232
235
match arg. force_stack ( fx) {
@@ -284,7 +287,7 @@ pub(super) fn cvalue_for_param<'tcx>(
284
287
assert_eq ! ( block_params. len( ) , 2 , "{:?}" , block_params) ;
285
288
Some ( CValue :: by_val_pair ( block_params[ 0 ] , block_params[ 1 ] , arg_abi. layout ) )
286
289
}
287
- PassMode :: Cast ( ref cast) => {
290
+ PassMode :: Cast ( ref cast, _ ) => {
288
291
Some ( from_casted_value ( fx, & block_params, arg_abi. layout , cast) )
289
292
}
290
293
PassMode :: Indirect { attrs : _, extra_attrs : None , on_stack : _ } => {
0 commit comments