@@ -971,7 +971,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
971
971
972
972
let layout = amount. layout ( ) ;
973
973
match layout. ty . kind ( ) {
974
- ty:: Uint ( _) | ty:: Int ( _) | ty :: RawPtr ( .. ) => { }
974
+ ty:: Uint ( _) | ty:: Int ( _) => { }
975
975
_ => {
976
976
report_atomic_type_validation_error ( fx, intrinsic, source_info. span , layout. ty ) ;
977
977
return Ok ( ( ) ) ;
@@ -984,7 +984,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
984
984
let old =
985
985
fx. bcx . ins ( ) . atomic_rmw ( ty, MemFlags :: trusted ( ) , AtomicRmwOp :: Add , ptr, amount) ;
986
986
987
- let old = CValue :: by_val ( old, layout) ;
987
+ let old = CValue :: by_val ( old, ret . layout ( ) ) ;
988
988
ret. write_cvalue ( fx, old) ;
989
989
}
990
990
sym:: atomic_xsub => {
@@ -993,7 +993,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
993
993
994
994
let layout = amount. layout ( ) ;
995
995
match layout. ty . kind ( ) {
996
- ty:: Uint ( _) | ty:: Int ( _) | ty :: RawPtr ( .. ) => { }
996
+ ty:: Uint ( _) | ty:: Int ( _) => { }
997
997
_ => {
998
998
report_atomic_type_validation_error ( fx, intrinsic, source_info. span , layout. ty ) ;
999
999
return Ok ( ( ) ) ;
@@ -1006,7 +1006,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
1006
1006
let old =
1007
1007
fx. bcx . ins ( ) . atomic_rmw ( ty, MemFlags :: trusted ( ) , AtomicRmwOp :: Sub , ptr, amount) ;
1008
1008
1009
- let old = CValue :: by_val ( old, layout) ;
1009
+ let old = CValue :: by_val ( old, ret . layout ( ) ) ;
1010
1010
ret. write_cvalue ( fx, old) ;
1011
1011
}
1012
1012
sym:: atomic_and => {
@@ -1015,7 +1015,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
1015
1015
1016
1016
let layout = src. layout ( ) ;
1017
1017
match layout. ty . kind ( ) {
1018
- ty:: Uint ( _) | ty:: Int ( _) | ty :: RawPtr ( .. ) => { }
1018
+ ty:: Uint ( _) | ty:: Int ( _) => { }
1019
1019
_ => {
1020
1020
report_atomic_type_validation_error ( fx, intrinsic, source_info. span , layout. ty ) ;
1021
1021
return Ok ( ( ) ) ;
@@ -1027,7 +1027,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
1027
1027
1028
1028
let old = fx. bcx . ins ( ) . atomic_rmw ( ty, MemFlags :: trusted ( ) , AtomicRmwOp :: And , ptr, src) ;
1029
1029
1030
- let old = CValue :: by_val ( old, layout) ;
1030
+ let old = CValue :: by_val ( old, ret . layout ( ) ) ;
1031
1031
ret. write_cvalue ( fx, old) ;
1032
1032
}
1033
1033
sym:: atomic_or => {
@@ -1036,7 +1036,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
1036
1036
1037
1037
let layout = src. layout ( ) ;
1038
1038
match layout. ty . kind ( ) {
1039
- ty:: Uint ( _) | ty:: Int ( _) | ty :: RawPtr ( .. ) => { }
1039
+ ty:: Uint ( _) | ty:: Int ( _) => { }
1040
1040
_ => {
1041
1041
report_atomic_type_validation_error ( fx, intrinsic, source_info. span , layout. ty ) ;
1042
1042
return Ok ( ( ) ) ;
@@ -1048,7 +1048,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
1048
1048
1049
1049
let old = fx. bcx . ins ( ) . atomic_rmw ( ty, MemFlags :: trusted ( ) , AtomicRmwOp :: Or , ptr, src) ;
1050
1050
1051
- let old = CValue :: by_val ( old, layout) ;
1051
+ let old = CValue :: by_val ( old, ret . layout ( ) ) ;
1052
1052
ret. write_cvalue ( fx, old) ;
1053
1053
}
1054
1054
sym:: atomic_xor => {
@@ -1057,7 +1057,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
1057
1057
1058
1058
let layout = src. layout ( ) ;
1059
1059
match layout. ty . kind ( ) {
1060
- ty:: Uint ( _) | ty:: Int ( _) | ty :: RawPtr ( .. ) => { }
1060
+ ty:: Uint ( _) | ty:: Int ( _) => { }
1061
1061
_ => {
1062
1062
report_atomic_type_validation_error ( fx, intrinsic, source_info. span , layout. ty ) ;
1063
1063
return Ok ( ( ) ) ;
@@ -1069,7 +1069,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
1069
1069
1070
1070
let old = fx. bcx . ins ( ) . atomic_rmw ( ty, MemFlags :: trusted ( ) , AtomicRmwOp :: Xor , ptr, src) ;
1071
1071
1072
- let old = CValue :: by_val ( old, layout) ;
1072
+ let old = CValue :: by_val ( old, ret . layout ( ) ) ;
1073
1073
ret. write_cvalue ( fx, old) ;
1074
1074
}
1075
1075
sym:: atomic_nand => {
@@ -1078,7 +1078,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
1078
1078
1079
1079
let layout = src. layout ( ) ;
1080
1080
match layout. ty . kind ( ) {
1081
- ty:: Uint ( _) | ty:: Int ( _) | ty :: RawPtr ( .. ) => { }
1081
+ ty:: Uint ( _) | ty:: Int ( _) => { }
1082
1082
_ => {
1083
1083
report_atomic_type_validation_error ( fx, intrinsic, source_info. span , layout. ty ) ;
1084
1084
return Ok ( ( ) ) ;
@@ -1090,7 +1090,7 @@ fn codegen_regular_intrinsic_call<'tcx>(
1090
1090
1091
1091
let old = fx. bcx . ins ( ) . atomic_rmw ( ty, MemFlags :: trusted ( ) , AtomicRmwOp :: Nand , ptr, src) ;
1092
1092
1093
- let old = CValue :: by_val ( old, layout) ;
1093
+ let old = CValue :: by_val ( old, ret . layout ( ) ) ;
1094
1094
ret. write_cvalue ( fx, old) ;
1095
1095
}
1096
1096
sym:: atomic_max => {
0 commit comments