@@ -13,7 +13,7 @@ pub(super) fn codegen_return_param<'tcx>(
1313 block_params_iter : & mut impl Iterator < Item = Value > ,
1414) -> CPlace < ' tcx > {
1515 let ( ret_place, ret_param) : ( _ , SmallVec < [ _ ; 2 ] > ) = match fx. fn_abi . as_ref ( ) . unwrap ( ) . ret . mode {
16- PassMode :: Ignore | PassMode :: Direct ( _) | PassMode :: Pair ( _, _) | PassMode :: Cast ( .. ) => {
16+ PassMode :: Ignore | PassMode :: Direct ( _) | PassMode :: Pair ( _, _) | PassMode :: Cast { .. } => {
1717 let is_ssa =
1818 ssa_analyzed[ RETURN_PLACE ] . is_ssa ( fx, fx. fn_abi . as_ref ( ) . unwrap ( ) . ret . layout . ty ) ;
1919 (
@@ -26,15 +26,15 @@ pub(super) fn codegen_return_param<'tcx>(
2626 smallvec ! [ ] ,
2727 )
2828 }
29- PassMode :: Indirect { attrs : _, extra_attrs : None , on_stack : _ } => {
29+ PassMode :: Indirect { attrs : _, meta_attrs : None , on_stack : _ } => {
3030 let ret_param = block_params_iter. next ( ) . unwrap ( ) ;
3131 assert_eq ! ( fx. bcx. func. dfg. value_type( ret_param) , fx. pointer_type) ;
3232 (
3333 CPlace :: for_ptr ( Pointer :: new ( ret_param) , fx. fn_abi . as_ref ( ) . unwrap ( ) . ret . layout ) ,
3434 smallvec ! [ ret_param] ,
3535 )
3636 }
37- PassMode :: Indirect { attrs : _, extra_attrs : Some ( _) , on_stack : _ } => {
37+ PassMode :: Indirect { attrs : _, meta_attrs : Some ( _) , on_stack : _ } => {
3838 unreachable ! ( "unsized return value" )
3939 }
4040 } ;
@@ -62,7 +62,7 @@ pub(super) fn codegen_with_call_return_arg<'tcx>(
6262) {
6363 let ( ret_temp_place, return_ptr) = match ret_arg_abi. mode {
6464 PassMode :: Ignore => ( None , None ) ,
65- PassMode :: Indirect { attrs : _, extra_attrs : None , on_stack : _ } => {
65+ PassMode :: Indirect { attrs : _, meta_attrs : None , on_stack : _ } => {
6666 if let Some ( ret_ptr) = ret_place. try_to_ptr ( ) {
6767 // This is an optimization to prevent unnecessary copies of the return value when
6868 // the return place is already a memory place as opposed to a register.
@@ -73,10 +73,10 @@ pub(super) fn codegen_with_call_return_arg<'tcx>(
7373 ( Some ( place) , Some ( place. to_ptr ( ) . get_addr ( fx) ) )
7474 }
7575 }
76- PassMode :: Indirect { attrs : _, extra_attrs : Some ( _) , on_stack : _ } => {
76+ PassMode :: Indirect { attrs : _, meta_attrs : Some ( _) , on_stack : _ } => {
7777 unreachable ! ( "unsized return value" )
7878 }
79- PassMode :: Direct ( _) | PassMode :: Pair ( _, _) | PassMode :: Cast ( .. ) => ( None , None ) ,
79+ PassMode :: Direct ( _) | PassMode :: Pair ( _, _) | PassMode :: Cast { .. } => ( None , None ) ,
8080 } ;
8181
8282 let call_inst = f ( fx, return_ptr) ;
@@ -93,21 +93,21 @@ pub(super) fn codegen_with_call_return_arg<'tcx>(
9393 ret_place
9494 . write_cvalue ( fx, CValue :: by_val_pair ( ret_val_a, ret_val_b, ret_arg_abi. layout ) ) ;
9595 }
96- PassMode :: Cast ( ref cast, _ ) => {
96+ PassMode :: Cast { ref cast, .. } => {
9797 let results =
9898 fx. bcx . inst_results ( call_inst) . iter ( ) . copied ( ) . collect :: < SmallVec < [ Value ; 2 ] > > ( ) ;
9999 let result =
100100 super :: pass_mode:: from_casted_value ( fx, & results, ret_place. layout ( ) , cast) ;
101101 ret_place. write_cvalue ( fx, result) ;
102102 }
103- PassMode :: Indirect { attrs : _, extra_attrs : None , on_stack : _ } => {
103+ PassMode :: Indirect { attrs : _, meta_attrs : None , on_stack : _ } => {
104104 if let Some ( ret_temp_place) = ret_temp_place {
105105 // If ret_temp_place is None, it is not necessary to copy the return value.
106106 let ret_temp_value = ret_temp_place. to_cvalue ( fx) ;
107107 ret_place. write_cvalue ( fx, ret_temp_value) ;
108108 }
109109 }
110- PassMode :: Indirect { attrs : _, extra_attrs : Some ( _) , on_stack : _ } => {
110+ PassMode :: Indirect { attrs : _, meta_attrs : Some ( _) , on_stack : _ } => {
111111 unreachable ! ( "unsized return value" )
112112 }
113113 }
@@ -116,10 +116,10 @@ pub(super) fn codegen_with_call_return_arg<'tcx>(
116116/// Codegen a return instruction with the right return value(s) if any.
117117pub ( crate ) fn codegen_return ( fx : & mut FunctionCx < ' _ , ' _ , ' _ > ) {
118118 match fx. fn_abi . as_ref ( ) . unwrap ( ) . ret . mode {
119- PassMode :: Ignore | PassMode :: Indirect { attrs : _, extra_attrs : None , on_stack : _ } => {
119+ PassMode :: Ignore | PassMode :: Indirect { attrs : _, meta_attrs : None , on_stack : _ } => {
120120 fx. bcx . ins ( ) . return_ ( & [ ] ) ;
121121 }
122- PassMode :: Indirect { attrs : _, extra_attrs : Some ( _) , on_stack : _ } => {
122+ PassMode :: Indirect { attrs : _, meta_attrs : Some ( _) , on_stack : _ } => {
123123 unreachable ! ( "unsized return value" )
124124 }
125125 PassMode :: Direct ( _) => {
@@ -132,7 +132,7 @@ pub(crate) fn codegen_return(fx: &mut FunctionCx<'_, '_, '_>) {
132132 let ( ret_val_a, ret_val_b) = place. to_cvalue ( fx) . load_scalar_pair ( fx) ;
133133 fx. bcx . ins ( ) . return_ ( & [ ret_val_a, ret_val_b] ) ;
134134 }
135- PassMode :: Cast ( ref cast, _ ) => {
135+ PassMode :: Cast { ref cast, .. } => {
136136 let place = fx. get_local_place ( RETURN_PLACE ) ;
137137 let ret_val = place. to_cvalue ( fx) ;
138138 let ret_vals = super :: pass_mode:: to_casted_value ( fx, ret_val, cast) ;
0 commit comments