@@ -969,7 +969,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
969
969
970
970
let layout = amount. layout ( ) ;
971
971
match layout. ty . kind ( ) {
972
- ty:: Uint ( _) | ty:: Int ( _) | ty :: RawPtr ( .. ) => { }
972
+ ty:: Uint ( _) | ty:: Int ( _) => { }
973
973
_ => {
974
974
report_atomic_type_validation_error ( fx, intrinsic, source_info. span , layout. ty ) ;
975
975
return Ok ( ( ) ) ;
@@ -982,7 +982,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
982
982
let old =
983
983
fx. bcx . ins ( ) . atomic_rmw ( ty, MemFlags :: trusted ( ) , AtomicRmwOp :: Add , ptr, amount) ;
984
984
985
- let old = CValue :: by_val ( old, layout) ;
985
+ let old = CValue :: by_val ( old, ret . layout ( ) ) ;
986
986
ret. write_cvalue ( fx, old) ;
987
987
}
988
988
sym:: atomic_xsub => {
@@ -991,7 +991,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
991
991
992
992
let layout = amount. layout ( ) ;
993
993
match layout. ty . kind ( ) {
994
- ty:: Uint ( _) | ty:: Int ( _) | ty :: RawPtr ( .. ) => { }
994
+ ty:: Uint ( _) | ty:: Int ( _) => { }
995
995
_ => {
996
996
report_atomic_type_validation_error ( fx, intrinsic, source_info. span , layout. ty ) ;
997
997
return Ok ( ( ) ) ;
@@ -1004,7 +1004,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
1004
1004
let old =
1005
1005
fx. bcx . ins ( ) . atomic_rmw ( ty, MemFlags :: trusted ( ) , AtomicRmwOp :: Sub , ptr, amount) ;
1006
1006
1007
- let old = CValue :: by_val ( old, layout) ;
1007
+ let old = CValue :: by_val ( old, ret . layout ( ) ) ;
1008
1008
ret. write_cvalue ( fx, old) ;
1009
1009
}
1010
1010
sym:: atomic_and => {
@@ -1013,7 +1013,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
1013
1013
1014
1014
let layout = src. layout ( ) ;
1015
1015
match layout. ty . kind ( ) {
1016
- ty:: Uint ( _) | ty:: Int ( _) | ty :: RawPtr ( .. ) => { }
1016
+ ty:: Uint ( _) | ty:: Int ( _) => { }
1017
1017
_ => {
1018
1018
report_atomic_type_validation_error ( fx, intrinsic, source_info. span , layout. ty ) ;
1019
1019
return Ok ( ( ) ) ;
@@ -1025,7 +1025,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
1025
1025
1026
1026
let old = fx. bcx . ins ( ) . atomic_rmw ( ty, MemFlags :: trusted ( ) , AtomicRmwOp :: And , ptr, src) ;
1027
1027
1028
- let old = CValue :: by_val ( old, layout) ;
1028
+ let old = CValue :: by_val ( old, ret . layout ( ) ) ;
1029
1029
ret. write_cvalue ( fx, old) ;
1030
1030
}
1031
1031
sym:: atomic_or => {
@@ -1034,7 +1034,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
1034
1034
1035
1035
let layout = src. layout ( ) ;
1036
1036
match layout. ty . kind ( ) {
1037
- ty:: Uint ( _) | ty:: Int ( _) | ty :: RawPtr ( .. ) => { }
1037
+ ty:: Uint ( _) | ty:: Int ( _) => { }
1038
1038
_ => {
1039
1039
report_atomic_type_validation_error ( fx, intrinsic, source_info. span , layout. ty ) ;
1040
1040
return Ok ( ( ) ) ;
@@ -1046,7 +1046,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
1046
1046
1047
1047
let old = fx. bcx . ins ( ) . atomic_rmw ( ty, MemFlags :: trusted ( ) , AtomicRmwOp :: Or , ptr, src) ;
1048
1048
1049
- let old = CValue :: by_val ( old, layout) ;
1049
+ let old = CValue :: by_val ( old, ret . layout ( ) ) ;
1050
1050
ret. write_cvalue ( fx, old) ;
1051
1051
}
1052
1052
sym:: atomic_xor => {
@@ -1055,7 +1055,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
1055
1055
1056
1056
let layout = src. layout ( ) ;
1057
1057
match layout. ty . kind ( ) {
1058
- ty:: Uint ( _) | ty:: Int ( _) | ty :: RawPtr ( .. ) => { }
1058
+ ty:: Uint ( _) | ty:: Int ( _) => { }
1059
1059
_ => {
1060
1060
report_atomic_type_validation_error ( fx, intrinsic, source_info. span , layout. ty ) ;
1061
1061
return Ok ( ( ) ) ;
@@ -1067,7 +1067,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
1067
1067
1068
1068
let old = fx. bcx . ins ( ) . atomic_rmw ( ty, MemFlags :: trusted ( ) , AtomicRmwOp :: Xor , ptr, src) ;
1069
1069
1070
- let old = CValue :: by_val ( old, layout) ;
1070
+ let old = CValue :: by_val ( old, ret . layout ( ) ) ;
1071
1071
ret. write_cvalue ( fx, old) ;
1072
1072
}
1073
1073
sym:: atomic_nand => {
@@ -1076,7 +1076,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
1076
1076
1077
1077
let layout = src. layout ( ) ;
1078
1078
match layout. ty . kind ( ) {
1079
- ty:: Uint ( _) | ty:: Int ( _) | ty :: RawPtr ( .. ) => { }
1079
+ ty:: Uint ( _) | ty:: Int ( _) => { }
1080
1080
_ => {
1081
1081
report_atomic_type_validation_error ( fx, intrinsic, source_info. span , layout. ty ) ;
1082
1082
return Ok ( ( ) ) ;
@@ -1088,7 +1088,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
1088
1088
1089
1089
let old = fx. bcx . ins ( ) . atomic_rmw ( ty, MemFlags :: trusted ( ) , AtomicRmwOp :: Nand , ptr, src) ;
1090
1090
1091
- let old = CValue :: by_val ( old, layout) ;
1091
+ let old = CValue :: by_val ( old, ret . layout ( ) ) ;
1092
1092
ret. write_cvalue ( fx, old) ;
1093
1093
}
1094
1094
sym:: atomic_max => {
0 commit comments