Commit 2553053
authored
Rollup merge of rust-lang#84752 - lrh2000:generator-debuginfo, r=tmandry
Fix debuginfo for generators
First, all fields except the discriminant (including `outer_fields`) should be put into structures inside the variant part, which gives an equivalent layout but offers us much better integration with debuggers.
Second, artificial flags in generator variants should be removed.
- Literally, variants are not artificial. We have `yield` statements, upvars and inner variables in the source code.
- Functionally, we don't want debuggers to suppress the variants. It contains the state of the generator, which is useful when debugging. So they shouldn't be marked artificial.
- Debuggers may use artificial flags to find the active variant. In this case, marking variants artificial will make debuggers not work properly.
Fixes rust-lang#62572.
Fixes rust-lang#79009.
And refer https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/Debuginfo.20for.20generators.File tree
7 files changed
+114
-80
lines changed- compiler/rustc_codegen_llvm/src/debuginfo
- src/test
- codegen
- debuginfo
7 files changed
+114
-80
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
309 | 309 | | |
310 | 310 | | |
311 | 311 | | |
| 312 | + | |
312 | 313 | | |
313 | 314 | | |
314 | 315 | | |
| |||
1459 | 1460 | | |
1460 | 1461 | | |
1461 | 1462 | | |
| 1463 | + | |
1462 | 1464 | | |
1463 | 1465 | | |
1464 | 1466 | | |
| |||
1493 | 1495 | | |
1494 | 1496 | | |
1495 | 1497 | | |
1496 | | - | |
1497 | | - | |
1498 | | - | |
1499 | | - | |
1500 | 1498 | | |
1501 | 1499 | | |
1502 | 1500 | | |
| |||
1523 | 1521 | | |
1524 | 1522 | | |
1525 | 1523 | | |
| 1524 | + | |
1526 | 1525 | | |
1527 | 1526 | | |
1528 | 1527 | | |
1529 | 1528 | | |
1530 | 1529 | | |
1531 | 1530 | | |
1532 | 1531 | | |
1533 | | - | |
| 1532 | + | |
1534 | 1533 | | |
1535 | 1534 | | |
1536 | 1535 | | |
| |||
1572 | 1571 | | |
1573 | 1572 | | |
1574 | 1573 | | |
| 1574 | + | |
1575 | 1575 | | |
1576 | 1576 | | |
1577 | 1577 | | |
| |||
1584 | 1584 | | |
1585 | 1585 | | |
1586 | 1586 | | |
1587 | | - | |
| 1587 | + | |
1588 | 1588 | | |
1589 | 1589 | | |
1590 | 1590 | | |
| |||
1621 | 1621 | | |
1622 | 1622 | | |
1623 | 1623 | | |
| 1624 | + | |
1624 | 1625 | | |
1625 | 1626 | | |
1626 | 1627 | | |
| |||
1667 | 1668 | | |
1668 | 1669 | | |
1669 | 1670 | | |
1670 | | - | |
| 1671 | + | |
1671 | 1672 | | |
1672 | 1673 | | |
1673 | 1674 | | |
| |||
1695 | 1696 | | |
1696 | 1697 | | |
1697 | 1698 | | |
| 1699 | + | |
1698 | 1700 | | |
1699 | 1701 | | |
1700 | 1702 | | |
| |||
1717 | 1719 | | |
1718 | 1720 | | |
1719 | 1721 | | |
1720 | | - | |
| 1722 | + | |
1721 | 1723 | | |
1722 | 1724 | | |
1723 | 1725 | | |
| |||
1849 | 1851 | | |
1850 | 1852 | | |
1851 | 1853 | | |
1852 | | - | |
1853 | | - | |
1854 | | - | |
1855 | | - | |
1856 | | - | |
1857 | | - | |
1858 | | - | |
1859 | 1854 | | |
1860 | 1855 | | |
1861 | 1856 | | |
| |||
1881 | 1876 | | |
1882 | 1877 | | |
1883 | 1878 | | |
1884 | | - | |
1885 | | - | |
| 1879 | + | |
1886 | 1880 | | |
1887 | 1881 | | |
1888 | 1882 | | |
| |||
1945 | 1939 | | |
1946 | 1940 | | |
1947 | 1941 | | |
1948 | | - | |
1949 | | - | |
1950 | | - | |
1951 | | - | |
1952 | | - | |
1953 | 1942 | | |
1954 | 1943 | | |
1955 | 1944 | | |
| |||
2082 | 2071 | | |
2083 | 2072 | | |
2084 | 2073 | | |
2085 | | - | |
| 2074 | + | |
2086 | 2075 | | |
2087 | 2076 | | |
2088 | 2077 | | |
| |||
2102 | 2091 | | |
2103 | 2092 | | |
2104 | 2093 | | |
| 2094 | + | |
2105 | 2095 | | |
2106 | 2096 | | |
2107 | 2097 | | |
| |||
2171 | 2161 | | |
2172 | 2162 | | |
2173 | 2163 | | |
2174 | | - | |
| 2164 | + | |
2175 | 2165 | | |
2176 | 2166 | | |
2177 | 2167 | | |
| |||
2203 | 2193 | | |
2204 | 2194 | | |
2205 | 2195 | | |
2206 | | - | |
| 2196 | + | |
2207 | 2197 | | |
2208 | 2198 | | |
2209 | 2199 | | |
2210 | 2200 | | |
2211 | 2201 | | |
2212 | 2202 | | |
2213 | | - | |
2214 | 2203 | | |
2215 | 2204 | | |
2216 | 2205 | | |
2217 | | - | |
| 2206 | + | |
| 2207 | + | |
| 2208 | + | |
| 2209 | + | |
| 2210 | + | |
2218 | 2211 | | |
2219 | 2212 | | |
2220 | 2213 | | |
| |||
2229 | 2222 | | |
2230 | 2223 | | |
2231 | 2224 | | |
2232 | | - | |
| 2225 | + | |
2233 | 2226 | | |
2234 | 2227 | | |
2235 | 2228 | | |
| |||
2251 | 2244 | | |
2252 | 2245 | | |
2253 | 2246 | | |
| 2247 | + | |
2254 | 2248 | | |
2255 | 2249 | | |
2256 | 2250 | | |
| |||
2283 | 2277 | | |
2284 | 2278 | | |
2285 | 2279 | | |
2286 | | - | |
| 2280 | + | |
| 2281 | + | |
| 2282 | + | |
| 2283 | + | |
| 2284 | + | |
| 2285 | + | |
| 2286 | + | |
2287 | 2287 | | |
2288 | 2288 | | |
2289 | 2289 | | |
| |||
2293 | 2293 | | |
2294 | 2294 | | |
2295 | 2295 | | |
| 2296 | + | |
2296 | 2297 | | |
2297 | 2298 | | |
2298 | 2299 | | |
| |||
2311 | 2312 | | |
2312 | 2313 | | |
2313 | 2314 | | |
2314 | | - | |
| 2315 | + | |
2315 | 2316 | | |
2316 | 2317 | | |
2317 | 2318 | | |
| 2319 | + | |
| 2320 | + | |
| 2321 | + | |
2318 | 2322 | | |
2319 | 2323 | | |
2320 | 2324 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
4 | | - | |
| 3 | + | |
| 4 | + | |
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| |||
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
20 | | - | |
| 20 | + | |
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
24 | | - | |
| 24 | + | |
| 25 | + | |
25 | 26 | | |
26 | 27 | | |
27 | | - | |
| 28 | + | |
| 29 | + | |
28 | 30 | | |
29 | 31 | | |
30 | | - | |
| 32 | + | |
| 33 | + | |
31 | 34 | | |
32 | 35 | | |
33 | | - | |
| 36 | + | |
| 37 | + | |
34 | 38 | | |
35 | 39 | | |
36 | 40 | | |
37 | | - | |
| 41 | + | |
| 42 | + | |
38 | 43 | | |
39 | | - | |
| 44 | + | |
| 45 | + | |
40 | 46 | | |
41 | 47 | | |
42 | 48 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
4 | | - | |
| 3 | + | |
| 4 | + | |
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| |||
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
20 | | - | |
| 20 | + | |
21 | 21 | | |
22 | | - | |
| 22 | + | |
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
26 | | - | |
| 26 | + | |
| 27 | + | |
27 | 28 | | |
28 | | - | |
| 29 | + | |
| 30 | + | |
29 | 31 | | |
30 | 32 | | |
31 | | - | |
| 33 | + | |
| 34 | + | |
32 | 35 | | |
33 | 36 | | |
34 | | - | |
| 37 | + | |
| 38 | + | |
35 | 39 | | |
36 | 40 | | |
37 | | - | |
| 41 | + | |
| 42 | + | |
38 | 43 | | |
39 | 44 | | |
40 | | - | |
| 45 | + | |
| 46 | + | |
41 | 47 | | |
42 | | - | |
| 48 | + | |
| 49 | + | |
43 | 50 | | |
44 | 51 | | |
45 | 52 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
4 | | - | |
| 3 | + | |
| 4 | + | |
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
24 | | - | |
| 24 | + | |
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
28 | | - | |
| 28 | + | |
| 29 | + | |
29 | 30 | | |
30 | 31 | | |
31 | | - | |
| 32 | + | |
| 33 | + | |
32 | 34 | | |
33 | 35 | | |
34 | | - | |
| 36 | + | |
| 37 | + | |
35 | 38 | | |
36 | 39 | | |
37 | | - | |
| 40 | + | |
| 41 | + | |
38 | 42 | | |
39 | 43 | | |
40 | 44 | | |
41 | | - | |
| 45 | + | |
| 46 | + | |
42 | 47 | | |
43 | | - | |
| 48 | + | |
| 49 | + | |
44 | 50 | | |
45 | 51 | | |
46 | 52 | | |
| |||
0 commit comments