Commit 0f5b39f
committed
Auto merge of #120176 - Flying-Toast:cstr_in_ffi_lint, r=cjgillot
Add a special case for CStr/CString in the improper_ctypes lint
Instead of saying to "consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct", we now tell users to "Use `*const ffi::c_char` instead, and pass the value from `CStr::as_ptr()`" when the type involved is a `CStr` or a `CString`.
Inspired by a conversation on the #beginners Discord channel.File tree
6 files changed
+165
-14
lines changed- compiler
- rustc_lint
- src
- rustc_span/src
- library/core/src/ffi
- tests/ui/lint
6 files changed
+165
-14
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
283 | 283 | | |
284 | 284 | | |
285 | 285 | | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
286 | 291 | | |
287 | 292 | | |
288 | 293 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
993 | 993 | | |
994 | 994 | | |
995 | 995 | | |
| 996 | + | |
| 997 | + | |
| 998 | + | |
| 999 | + | |
| 1000 | + | |
| 1001 | + | |
| 1002 | + | |
| 1003 | + | |
996 | 1004 | | |
997 | 1005 | | |
998 | 1006 | | |
| |||
1179 | 1187 | | |
1180 | 1188 | | |
1181 | 1189 | | |
1182 | | - | |
| 1190 | + | |
1183 | 1191 | | |
1184 | 1192 | | |
1185 | 1193 | | |
| |||
1189 | 1197 | | |
1190 | 1198 | | |
1191 | 1199 | | |
1192 | | - | |
| 1200 | + | |
1193 | 1201 | | |
1194 | 1202 | | |
1195 | 1203 | | |
1196 | 1204 | | |
1197 | 1205 | | |
1198 | | - | |
| 1206 | + | |
1199 | 1207 | | |
1200 | 1208 | | |
1201 | 1209 | | |
| |||
1206 | 1214 | | |
1207 | 1215 | | |
1208 | 1216 | | |
1209 | | - | |
| 1217 | + | |
1210 | 1218 | | |
1211 | 1219 | | |
1212 | 1220 | | |
| |||
1224 | 1232 | | |
1225 | 1233 | | |
1226 | 1234 | | |
1227 | | - | |
| 1235 | + | |
1228 | 1236 | | |
1229 | 1237 | | |
1230 | 1238 | | |
| |||
1244 | 1252 | | |
1245 | 1253 | | |
1246 | 1254 | | |
1247 | | - | |
| 1255 | + | |
| 1256 | + | |
| 1257 | + | |
| 1258 | + | |
| 1259 | + | |
1248 | 1260 | | |
1249 | 1261 | | |
1250 | 1262 | | |
| |||
1253 | 1265 | | |
1254 | 1266 | | |
1255 | 1267 | | |
1256 | | - | |
| 1268 | + | |
1257 | 1269 | | |
1258 | 1270 | | |
1259 | 1271 | | |
| |||
1275 | 1287 | | |
1276 | 1288 | | |
1277 | 1289 | | |
| 1290 | + | |
| 1291 | + | |
| 1292 | + | |
| 1293 | + | |
| 1294 | + | |
| 1295 | + | |
| 1296 | + | |
| 1297 | + | |
| 1298 | + | |
| 1299 | + | |
| 1300 | + | |
1278 | 1301 | | |
1279 | 1302 | | |
1280 | 1303 | | |
| |||
1321 | 1344 | | |
1322 | 1345 | | |
1323 | 1346 | | |
1324 | | - | |
| 1347 | + | |
1325 | 1348 | | |
1326 | 1349 | | |
1327 | 1350 | | |
| |||
1364 | 1387 | | |
1365 | 1388 | | |
1366 | 1389 | | |
1367 | | - | |
| 1390 | + | |
1368 | 1391 | | |
1369 | 1392 | | |
1370 | 1393 | | |
| |||
1434 | 1457 | | |
1435 | 1458 | | |
1436 | 1459 | | |
1437 | | - | |
| 1460 | + | |
1438 | 1461 | | |
1439 | | - | |
| 1462 | + | |
1440 | 1463 | | |
1441 | 1464 | | |
1442 | 1465 | | |
| |||
1449 | 1472 | | |
1450 | 1473 | | |
1451 | 1474 | | |
1452 | | - | |
| 1475 | + | |
1453 | 1476 | | |
1454 | 1477 | | |
1455 | 1478 | | |
| |||
1460 | 1483 | | |
1461 | 1484 | | |
1462 | 1485 | | |
1463 | | - | |
| 1486 | + | |
1464 | 1487 | | |
1465 | 1488 | | |
1466 | 1489 | | |
| |||
1583 | 1606 | | |
1584 | 1607 | | |
1585 | 1608 | | |
1586 | | - | |
| 1609 | + | |
| 1610 | + | |
1587 | 1611 | | |
1588 | 1612 | | |
1589 | 1613 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
648 | 648 | | |
649 | 649 | | |
650 | 650 | | |
| 651 | + | |
651 | 652 | | |
652 | 653 | | |
653 | 654 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
88 | 88 | | |
89 | 89 | | |
90 | 90 | | |
| 91 | + | |
91 | 92 | | |
92 | 93 | | |
93 | 94 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
0 commit comments