Commit aa49b85
committed
[TypeLowering] Record packs used in signatures.
To determine whether an instruction may require pack metadata, the types
of its operands are examined.
Previously, the top level type was checked for having a pack in its
signature, and the whole type was checked for having a type anywhere in
its layout (via TypeLowering). This didn't account for the case where
the metadata was required for a resilient type which uses a pack in its
signature.
Here, during type lowering, a type having a pack in its signature is
counted towards the type having a pack.
Fixes a compiler crash.
rdar://1472079261 parent bb67d1e commit aa49b85
File tree
3 files changed
+75
-3
lines changed- lib/SIL/IR
- validation-test/IRGen
3 files changed
+75
-3
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1353 | 1353 | | |
1354 | 1354 | | |
1355 | 1355 | | |
1356 | | - | |
| 1356 | + | |
1357 | 1357 | | |
1358 | 1358 | | |
1359 | 1359 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2290 | 2290 | | |
2291 | 2291 | | |
2292 | 2292 | | |
| 2293 | + | |
2293 | 2294 | | |
2294 | 2295 | | |
2295 | 2296 | | |
2296 | 2297 | | |
2297 | 2298 | | |
2298 | 2299 | | |
| 2300 | + | |
2299 | 2301 | | |
2300 | 2302 | | |
2301 | 2303 | | |
| |||
2307 | 2309 | | |
2308 | 2310 | | |
2309 | 2311 | | |
| 2312 | + | |
2310 | 2313 | | |
2311 | 2314 | | |
2312 | 2315 | | |
2313 | 2316 | | |
2314 | 2317 | | |
2315 | 2318 | | |
2316 | 2319 | | |
| 2320 | + | |
2317 | 2321 | | |
2318 | 2322 | | |
2319 | 2323 | | |
| |||
2326 | 2330 | | |
2327 | 2331 | | |
2328 | 2332 | | |
| 2333 | + | |
| 2334 | + | |
2329 | 2335 | | |
2330 | | - | |
2331 | | - | |
| 2336 | + | |
2332 | 2337 | | |
2333 | 2338 | | |
2334 | 2339 | | |
2335 | 2340 | | |
| 2341 | + | |
2336 | 2342 | | |
2337 | 2343 | | |
2338 | 2344 | | |
| |||
2347 | 2353 | | |
2348 | 2354 | | |
2349 | 2355 | | |
| 2356 | + | |
2350 | 2357 | | |
2351 | 2358 | | |
2352 | 2359 | | |
| |||
| 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 | + | |
0 commit comments