@@ -971,7 +971,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
971971
972972 let layout = amount. layout ( ) ;
973973 match layout. ty . kind ( ) {
974- ty:: Uint ( _) | ty:: Int ( _) | ty :: RawPtr ( .. ) => { }
974+ ty:: Uint ( _) | ty:: Int ( _) => { }
975975 _ => {
976976 report_atomic_type_validation_error ( fx, intrinsic, source_info. span , layout. ty ) ;
977977 return Ok ( ( ) ) ;
@@ -984,7 +984,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
984984 let old =
985985 fx. bcx . ins ( ) . atomic_rmw ( ty, MemFlags :: trusted ( ) , AtomicRmwOp :: Add , ptr, amount) ;
986986
987- let old = CValue :: by_val ( old, layout) ;
987+ let old = CValue :: by_val ( old, ret . layout ( ) ) ;
988988 ret. write_cvalue ( fx, old) ;
989989 }
990990 sym:: atomic_xsub => {
@@ -993,7 +993,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
993993
994994 let layout = amount. layout ( ) ;
995995 match layout. ty . kind ( ) {
996- ty:: Uint ( _) | ty:: Int ( _) | ty :: RawPtr ( .. ) => { }
996+ ty:: Uint ( _) | ty:: Int ( _) => { }
997997 _ => {
998998 report_atomic_type_validation_error ( fx, intrinsic, source_info. span , layout. ty ) ;
999999 return Ok ( ( ) ) ;
@@ -1006,7 +1006,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
10061006 let old =
10071007 fx. bcx . ins ( ) . atomic_rmw ( ty, MemFlags :: trusted ( ) , AtomicRmwOp :: Sub , ptr, amount) ;
10081008
1009- let old = CValue :: by_val ( old, layout) ;
1009+ let old = CValue :: by_val ( old, ret . layout ( ) ) ;
10101010 ret. write_cvalue ( fx, old) ;
10111011 }
10121012 sym:: atomic_and => {
@@ -1015,7 +1015,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
10151015
10161016 let layout = src. layout ( ) ;
10171017 match layout. ty . kind ( ) {
1018- ty:: Uint ( _) | ty:: Int ( _) | ty :: RawPtr ( .. ) => { }
1018+ ty:: Uint ( _) | ty:: Int ( _) => { }
10191019 _ => {
10201020 report_atomic_type_validation_error ( fx, intrinsic, source_info. span , layout. ty ) ;
10211021 return Ok ( ( ) ) ;
@@ -1027,7 +1027,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
10271027
10281028 let old = fx. bcx . ins ( ) . atomic_rmw ( ty, MemFlags :: trusted ( ) , AtomicRmwOp :: And , ptr, src) ;
10291029
1030- let old = CValue :: by_val ( old, layout) ;
1030+ let old = CValue :: by_val ( old, ret . layout ( ) ) ;
10311031 ret. write_cvalue ( fx, old) ;
10321032 }
10331033 sym:: atomic_or => {
@@ -1036,7 +1036,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
10361036
10371037 let layout = src. layout ( ) ;
10381038 match layout. ty . kind ( ) {
1039- ty:: Uint ( _) | ty:: Int ( _) | ty :: RawPtr ( .. ) => { }
1039+ ty:: Uint ( _) | ty:: Int ( _) => { }
10401040 _ => {
10411041 report_atomic_type_validation_error ( fx, intrinsic, source_info. span , layout. ty ) ;
10421042 return Ok ( ( ) ) ;
@@ -1048,7 +1048,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
10481048
10491049 let old = fx. bcx . ins ( ) . atomic_rmw ( ty, MemFlags :: trusted ( ) , AtomicRmwOp :: Or , ptr, src) ;
10501050
1051- let old = CValue :: by_val ( old, layout) ;
1051+ let old = CValue :: by_val ( old, ret . layout ( ) ) ;
10521052 ret. write_cvalue ( fx, old) ;
10531053 }
10541054 sym:: atomic_xor => {
@@ -1057,7 +1057,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
10571057
10581058 let layout = src. layout ( ) ;
10591059 match layout. ty . kind ( ) {
1060- ty:: Uint ( _) | ty:: Int ( _) | ty :: RawPtr ( .. ) => { }
1060+ ty:: Uint ( _) | ty:: Int ( _) => { }
10611061 _ => {
10621062 report_atomic_type_validation_error ( fx, intrinsic, source_info. span , layout. ty ) ;
10631063 return Ok ( ( ) ) ;
@@ -1069,7 +1069,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
10691069
10701070 let old = fx. bcx . ins ( ) . atomic_rmw ( ty, MemFlags :: trusted ( ) , AtomicRmwOp :: Xor , ptr, src) ;
10711071
1072- let old = CValue :: by_val ( old, layout) ;
1072+ let old = CValue :: by_val ( old, ret . layout ( ) ) ;
10731073 ret. write_cvalue ( fx, old) ;
10741074 }
10751075 sym:: atomic_nand => {
@@ -1078,7 +1078,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
10781078
10791079 let layout = src. layout ( ) ;
10801080 match layout. ty . kind ( ) {
1081- ty:: Uint ( _) | ty:: Int ( _) | ty :: RawPtr ( .. ) => { }
1081+ ty:: Uint ( _) | ty:: Int ( _) => { }
10821082 _ => {
10831083 report_atomic_type_validation_error ( fx, intrinsic, source_info. span , layout. ty ) ;
10841084 return Ok ( ( ) ) ;
@@ -1090,7 +1090,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
10901090
10911091 let old = fx. bcx . ins ( ) . atomic_rmw ( ty, MemFlags :: trusted ( ) , AtomicRmwOp :: Nand , ptr, src) ;
10921092
1093- let old = CValue :: by_val ( old, layout) ;
1093+ let old = CValue :: by_val ( old, ret . layout ( ) ) ;
10941094 ret. write_cvalue ( fx, old) ;
10951095 }
10961096 sym:: atomic_max => {
0 commit comments