This repository was archived by the owner on May 28, 2025. It is now read-only.
Commit 4028cb5
committed
Auto merge of rust-lang#121571 - clarfonthey:unchecked-math-preconditions, r=<try>
Add debug_assert_nounwind to unchecked_{add,sub,neg,mul,shl,shr} methods
(Old PR is haunted, opening a new one. See rust-lang#117494 for previous discussion.)
This ensures that these preconditions are actually checked in debug mode, and hopefully should let people know if they messed up. I've also replaced the calls (I could find) in the code that use these intrinsics directly with those that use these methods, so that the asserts actually apply.
More discussions on people misusing these methods in the tracking issue: rust-lang#85122.File tree
27 files changed
+620
-161
lines changed- library/core/src
- num
- ops
- ptr
- slice
- src/tools/miri/tests/pass/shims
- tests/mir-opt
- inline
- pre-codegen
27 files changed
+620
-161
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
510 | 510 | | |
511 | 511 | | |
512 | 512 | | |
513 | | - | |
514 | | - | |
515 | | - | |
| 513 | + | |
| 514 | + | |
| 515 | + | |
| 516 | + | |
| 517 | + | |
| 518 | + | |
| 519 | + | |
| 520 | + | |
516 | 521 | | |
517 | 522 | | |
518 | 523 | | |
| |||
648 | 653 | | |
649 | 654 | | |
650 | 655 | | |
651 | | - | |
652 | | - | |
653 | | - | |
| 656 | + | |
| 657 | + | |
| 658 | + | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
| 662 | + | |
| 663 | + | |
654 | 664 | | |
655 | 665 | | |
656 | 666 | | |
| |||
786 | 796 | | |
787 | 797 | | |
788 | 798 | | |
789 | | - | |
790 | | - | |
791 | | - | |
| 799 | + | |
| 800 | + | |
| 801 | + | |
| 802 | + | |
| 803 | + | |
| 804 | + | |
| 805 | + | |
| 806 | + | |
792 | 807 | | |
793 | 808 | | |
794 | 809 | | |
| |||
1125 | 1140 | | |
1126 | 1141 | | |
1127 | 1142 | | |
1128 | | - | |
1129 | | - | |
1130 | | - | |
| 1143 | + | |
| 1144 | + | |
| 1145 | + | |
| 1146 | + | |
| 1147 | + | |
| 1148 | + | |
| 1149 | + | |
| 1150 | + | |
| 1151 | + | |
1131 | 1152 | | |
1132 | 1153 | | |
1133 | 1154 | | |
| |||
1179 | 1200 | | |
1180 | 1201 | | |
1181 | 1202 | | |
1182 | | - | |
| 1203 | + | |
1183 | 1204 | | |
1184 | 1205 | | |
1185 | 1206 | | |
| |||
1241 | 1262 | | |
1242 | 1263 | | |
1243 | 1264 | | |
1244 | | - | |
1245 | | - | |
| 1265 | + | |
| 1266 | + | |
| 1267 | + | |
| 1268 | + | |
| 1269 | + | |
1246 | 1270 | | |
1247 | | - | |
| 1271 | + | |
| 1272 | + | |
| 1273 | + | |
1248 | 1274 | | |
1249 | 1275 | | |
1250 | 1276 | | |
| |||
1262 | 1288 | | |
1263 | 1289 | | |
1264 | 1290 | | |
1265 | | - | |
| 1291 | + | |
1266 | 1292 | | |
1267 | 1293 | | |
1268 | 1294 | | |
| |||
1324 | 1350 | | |
1325 | 1351 | | |
1326 | 1352 | | |
1327 | | - | |
1328 | | - | |
| 1353 | + | |
| 1354 | + | |
| 1355 | + | |
| 1356 | + | |
| 1357 | + | |
1329 | 1358 | | |
1330 | | - | |
| 1359 | + | |
| 1360 | + | |
| 1361 | + | |
1331 | 1362 | | |
1332 | 1363 | | |
1333 | 1364 | | |
| |||
1991 | 2022 | | |
1992 | 2023 | | |
1993 | 2024 | | |
1994 | | - | |
| 2025 | + | |
| 2026 | + | |
| 2027 | + | |
1995 | 2028 | | |
1996 | 2029 | | |
1997 | 2030 | | |
| |||
2021 | 2054 | | |
2022 | 2055 | | |
2023 | 2056 | | |
2024 | | - | |
| 2057 | + | |
| 2058 | + | |
| 2059 | + | |
2025 | 2060 | | |
2026 | 2061 | | |
2027 | 2062 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
| 10 | + | |
10 | 11 | | |
11 | 12 | | |
12 | 13 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
518 | 518 | | |
519 | 519 | | |
520 | 520 | | |
521 | | - | |
522 | | - | |
523 | | - | |
| 521 | + | |
| 522 | + | |
| 523 | + | |
| 524 | + | |
| 525 | + | |
| 526 | + | |
| 527 | + | |
| 528 | + | |
| 529 | + | |
524 | 530 | | |
525 | 531 | | |
526 | 532 | | |
| |||
662 | 668 | | |
663 | 669 | | |
664 | 670 | | |
665 | | - | |
666 | | - | |
667 | | - | |
| 671 | + | |
| 672 | + | |
| 673 | + | |
| 674 | + | |
| 675 | + | |
| 676 | + | |
| 677 | + | |
| 678 | + | |
668 | 679 | | |
669 | 680 | | |
670 | 681 | | |
| |||
744 | 755 | | |
745 | 756 | | |
746 | 757 | | |
747 | | - | |
748 | | - | |
749 | | - | |
| 758 | + | |
| 759 | + | |
| 760 | + | |
| 761 | + | |
| 762 | + | |
| 763 | + | |
| 764 | + | |
| 765 | + | |
750 | 766 | | |
751 | 767 | | |
752 | 768 | | |
| |||
1239 | 1255 | | |
1240 | 1256 | | |
1241 | 1257 | | |
1242 | | - | |
| 1258 | + | |
1243 | 1259 | | |
1244 | 1260 | | |
1245 | 1261 | | |
| |||
1301 | 1317 | | |
1302 | 1318 | | |
1303 | 1319 | | |
1304 | | - | |
1305 | | - | |
| 1320 | + | |
| 1321 | + | |
| 1322 | + | |
| 1323 | + | |
| 1324 | + | |
1306 | 1325 | | |
1307 | | - | |
| 1326 | + | |
| 1327 | + | |
| 1328 | + | |
1308 | 1329 | | |
1309 | 1330 | | |
1310 | 1331 | | |
| |||
1322 | 1343 | | |
1323 | 1344 | | |
1324 | 1345 | | |
1325 | | - | |
| 1346 | + | |
1326 | 1347 | | |
1327 | 1348 | | |
1328 | 1349 | | |
| |||
1384 | 1405 | | |
1385 | 1406 | | |
1386 | 1407 | | |
1387 | | - | |
1388 | | - | |
| 1408 | + | |
| 1409 | + | |
| 1410 | + | |
| 1411 | + | |
| 1412 | + | |
1389 | 1413 | | |
1390 | | - | |
| 1414 | + | |
| 1415 | + | |
| 1416 | + | |
1391 | 1417 | | |
1392 | 1418 | | |
1393 | 1419 | | |
| |||
1878 | 1904 | | |
1879 | 1905 | | |
1880 | 1906 | | |
1881 | | - | |
| 1907 | + | |
| 1908 | + | |
| 1909 | + | |
1882 | 1910 | | |
1883 | 1911 | | |
1884 | 1912 | | |
| |||
1911 | 1939 | | |
1912 | 1940 | | |
1913 | 1941 | | |
1914 | | - | |
| 1942 | + | |
| 1943 | + | |
| 1944 | + | |
1915 | 1945 | | |
1916 | 1946 | | |
1917 | 1947 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
2 | 1 | | |
3 | 2 | | |
4 | 3 | | |
| |||
44 | 43 | | |
45 | 44 | | |
46 | 45 | | |
47 | | - | |
| 46 | + | |
48 | 47 | | |
49 | 48 | | |
50 | 49 | | |
| |||
55 | 54 | | |
56 | 55 | | |
57 | 56 | | |
58 | | - | |
| 57 | + | |
59 | 58 | | |
60 | 59 | | |
61 | 60 | | |
| |||
66 | 65 | | |
67 | 66 | | |
68 | 67 | | |
69 | | - | |
| 68 | + | |
70 | 69 | | |
71 | 70 | | |
72 | 71 | | |
| |||
81 | 80 | | |
82 | 81 | | |
83 | 82 | | |
84 | | - | |
| 83 | + | |
85 | 84 | | |
86 | 85 | | |
87 | 86 | | |
| |||
100 | 99 | | |
101 | 100 | | |
102 | 101 | | |
103 | | - | |
| 102 | + | |
104 | 103 | | |
105 | 104 | | |
106 | 105 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
167 | 167 | | |
168 | 168 | | |
169 | 169 | | |
170 | | - | |
| 170 | + | |
171 | 171 | | |
172 | 172 | | |
173 | 173 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1021 | 1021 | | |
1022 | 1022 | | |
1023 | 1023 | | |
1024 | | - | |
1025 | 1024 | | |
| 1025 | + | |
1026 | 1026 | | |
1027 | 1027 | | |
1028 | 1028 | | |
| |||
1035 | 1035 | | |
1036 | 1036 | | |
1037 | 1037 | | |
1038 | | - | |
| 1038 | + | |
| 1039 | + | |
| 1040 | + | |
| 1041 | + | |
1039 | 1042 | | |
1040 | 1043 | | |
1041 | 1044 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1121 | 1121 | | |
1122 | 1122 | | |
1123 | 1123 | | |
1124 | | - | |
| 1124 | + | |
1125 | 1125 | | |
1126 | 1126 | | |
1127 | 1127 | | |
| |||
1135 | 1135 | | |
1136 | 1136 | | |
1137 | 1137 | | |
1138 | | - | |
| 1138 | + | |
| 1139 | + | |
| 1140 | + | |
| 1141 | + | |
1139 | 1142 | | |
1140 | 1143 | | |
1141 | 1144 | | |
| |||
0 commit comments