@@ -130,7 +130,7 @@ impl<'a, 'gcc, 'tcx> IntrinsicCallMethods<'tcx> for Builder<'a, 'gcc, 'tcx> {
130
130
sym:: volatile_load | sym:: unaligned_volatile_load => {
131
131
let tp_ty = substs. type_at ( 0 ) ;
132
132
let mut ptr = args[ 0 ] . immediate ( ) ;
133
- if let PassMode :: Cast ( ty) = fn_abi. ret . mode {
133
+ if let PassMode :: Cast ( ty, _ ) = & fn_abi. ret . mode {
134
134
ptr = self . pointercast ( ptr, self . type_ptr_to ( ty. gcc_type ( self ) ) ) ;
135
135
}
136
136
let load = self . volatile_load ( ptr. get_type ( ) , ptr) ;
@@ -320,7 +320,7 @@ impl<'a, 'gcc, 'tcx> IntrinsicCallMethods<'tcx> for Builder<'a, 'gcc, 'tcx> {
320
320
} ;
321
321
322
322
if !fn_abi. ret . is_ignore ( ) {
323
- if let PassMode :: Cast ( ty) = fn_abi. ret . mode {
323
+ if let PassMode :: Cast ( ty, _ ) = & fn_abi. ret . mode {
324
324
let ptr_llty = self . type_ptr_to ( ty. gcc_type ( self ) ) ;
325
325
let ptr = self . pointercast ( result. llval , ptr_llty) ;
326
326
self . store ( llval, ptr, result. align ) ;
@@ -416,7 +416,7 @@ impl<'gcc, 'tcx> ArgAbiExt<'gcc, 'tcx> for ArgAbi<'tcx, Ty<'tcx>> {
416
416
else if self . is_unsized_indirect ( ) {
417
417
bug ! ( "unsized `ArgAbi` must be handled through `store_fn_arg`" ) ;
418
418
}
419
- else if let PassMode :: Cast ( cast) = self . mode {
419
+ else if let PassMode :: Cast ( ref cast, _ ) = self . mode {
420
420
// FIXME(eddyb): Figure out when the simpler Store is safe, clang
421
421
// uses it for i16 -> {i8, i8}, but not for i24 -> {i8, i8, i8}.
422
422
let can_store_through_cast_ptr = false ;
@@ -481,7 +481,7 @@ impl<'gcc, 'tcx> ArgAbiExt<'gcc, 'tcx> for ArgAbi<'tcx, Ty<'tcx>> {
481
481
PassMode :: Indirect { extra_attrs : Some ( _) , .. } => {
482
482
OperandValue :: Ref ( next ( ) , Some ( next ( ) ) , self . layout . align . abi ) . store ( bx, dst) ;
483
483
} ,
484
- PassMode :: Direct ( _) | PassMode :: Indirect { extra_attrs : None , .. } | PassMode :: Cast ( _ ) => {
484
+ PassMode :: Direct ( _) | PassMode :: Indirect { extra_attrs : None , .. } | PassMode :: Cast ( .. ) => {
485
485
let next_arg = next ( ) ;
486
486
self . store ( bx, next_arg, dst) ;
487
487
} ,
0 commit comments