Commit 012ae13
committed
Auto merge of #132549 - Zalathar:rust-string, r=cuviper
Make `RustString` an extern type to avoid `improper_ctypes` warnings
Currently, any FFI function that uses `&RustString` needs to also add `#[ignore(improper_ctypes)]` to silence a warning.
The warning is not _completely_ bogus, because `RustString` contains `Vec<u8>` and therefore does not have a guaranteed layout. But we have no way of telling the lint that this doesn't matter, because the C++ code only uses that pointer opaquely and never relies on its underlying layout.
Ideally there would be some way to silence `improper_ctypes` at the type-definition site. But because there isn't, casting to and from a separate extern type is better than having to annotate every single use site.File tree
6 files changed
+60
-47
lines changed- compiler
- rustc_codegen_llvm/src/llvm
- rustc_llvm
- llvm-wrapper
- src
6 files changed
+60
-47
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1766 | 1766 | | |
1767 | 1767 | | |
1768 | 1768 | | |
1769 | | - | |
1770 | 1769 | | |
1771 | 1770 | | |
1772 | 1771 | | |
1773 | | - | |
1774 | 1772 | | |
1775 | 1773 | | |
1776 | 1774 | | |
| |||
1791 | 1789 | | |
1792 | 1790 | | |
1793 | 1791 | | |
1794 | | - | |
1795 | 1792 | | |
1796 | 1793 | | |
1797 | 1794 | | |
| |||
1800 | 1797 | | |
1801 | 1798 | | |
1802 | 1799 | | |
1803 | | - | |
1804 | 1800 | | |
1805 | 1801 | | |
1806 | 1802 | | |
| |||
1824 | 1820 | | |
1825 | 1821 | | |
1826 | 1822 | | |
1827 | | - | |
1828 | 1823 | | |
1829 | 1824 | | |
1830 | | - | |
1831 | 1825 | | |
1832 | 1826 | | |
1833 | | - | |
1834 | 1827 | | |
1835 | 1828 | | |
1836 | 1829 | | |
| |||
2185 | 2178 | | |
2186 | 2179 | | |
2187 | 2180 | | |
2188 | | - | |
2189 | 2181 | | |
2190 | | - | |
2191 | 2182 | | |
2192 | 2183 | | |
2193 | 2184 | | |
2194 | 2185 | | |
2195 | | - | |
2196 | 2186 | | |
2197 | 2187 | | |
2198 | 2188 | | |
| |||
2297 | 2287 | | |
2298 | 2288 | | |
2299 | 2289 | | |
2300 | | - | |
2301 | 2290 | | |
2302 | 2291 | | |
2303 | | - | |
2304 | 2292 | | |
2305 | 2293 | | |
2306 | 2294 | | |
| |||
2318 | 2306 | | |
2319 | 2307 | | |
2320 | 2308 | | |
2321 | | - | |
2322 | 2309 | | |
2323 | 2310 | | |
2324 | 2311 | | |
| |||
2327 | 2314 | | |
2328 | 2315 | | |
2329 | 2316 | | |
2330 | | - | |
2331 | 2317 | | |
2332 | 2318 | | |
2333 | 2319 | | |
| |||
2374 | 2360 | | |
2375 | 2361 | | |
2376 | 2362 | | |
2377 | | - | |
2378 | 2363 | | |
2379 | 2364 | | |
2380 | 2365 | | |
| |||
2427 | 2412 | | |
2428 | 2413 | | |
2429 | 2414 | | |
2430 | | - | |
2431 | 2415 | | |
2432 | 2416 | | |
2433 | 2417 | | |
| |||
2450 | 2434 | | |
2451 | 2435 | | |
2452 | 2436 | | |
2453 | | - | |
2454 | 2437 | | |
2455 | 2438 | | |
2456 | 2439 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
4 | 3 | | |
5 | 4 | | |
6 | 5 | | |
| |||
301 | 300 | | |
302 | 301 | | |
303 | 302 | | |
304 | | - | |
305 | | - | |
306 | | - | |
| 303 | + | |
307 | 304 | | |
308 | 305 | | |
309 | 306 | | |
310 | | - | |
311 | | - | |
312 | | - | |
| 307 | + | |
313 | 308 | | |
314 | 309 | | |
315 | 310 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
104 | 104 | | |
105 | 105 | | |
106 | 106 | | |
107 | | - | |
108 | | - | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
109 | 110 | | |
110 | 111 | | |
111 | 112 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1624 | 1624 | | |
1625 | 1625 | | |
1626 | 1626 | | |
1627 | | - | |
| 1627 | + | |
| 1628 | + | |
1628 | 1629 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1510 | 1510 | | |
1511 | 1511 | | |
1512 | 1512 | | |
1513 | | - | |
1514 | | - | |
| 1513 | + | |
| 1514 | + | |
1515 | 1515 | | |
1516 | 1516 | | |
1517 | 1517 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| 5 | + | |
5 | 6 | | |
6 | 7 | | |
7 | 8 | | |
8 | 9 | | |
9 | | - | |
10 | | - | |
11 | 10 | | |
12 | | - | |
| 11 | + | |
13 | 12 | | |
14 | | - | |
| 13 | + | |
15 | 14 | | |
16 | | - | |
17 | | - | |
18 | | - | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
19 | 20 | | |
20 | 21 | | |
21 | 22 | | |
22 | | - | |
23 | | - | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
24 | 27 | | |
| 28 | + | |
25 | 29 | | |
26 | | - | |
27 | | - | |
| 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 | + | |
28 | 58 | | |
29 | 59 | | |
30 | 60 | | |
31 | | - | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
32 | 66 | | |
33 | 67 | | |
34 | | - | |
35 | | - | |
36 | | - | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
37 | 71 | | |
38 | | - | |
39 | | - | |
40 | | - | |
| 72 | + | |
| 73 | + | |
41 | 74 | | |
42 | 75 | | |
43 | 76 | | |
| |||
0 commit comments