Commit 04f6d99
committed
[IRGen] Map result to native representation in emitAsyncReturn
rdar://147872231
When an async typed throwing function had a result type that combined multiple fields into a single register, we created invalid IR, that could lead to compiler crashes or in some cases even miscompiles. With this fix we are mapping the result to the native representation before mapping it to the combined result type.1 parent 0414cb2 commit 04f6d99
2 files changed
+16
-4
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6346 | 6346 | | |
6347 | 6347 | | |
6348 | 6348 | | |
| 6349 | + | |
| 6350 | + | |
6349 | 6351 | | |
6350 | 6352 | | |
6351 | | - | |
6352 | | - | |
| 6353 | + | |
| 6354 | + | |
6353 | 6355 | | |
6354 | 6356 | | |
6355 | 6357 | | |
| |||
6360 | 6362 | | |
6361 | 6363 | | |
6362 | 6364 | | |
6363 | | - | |
| 6365 | + | |
6364 | 6366 | | |
6365 | | - | |
| 6367 | + | |
6366 | 6368 | | |
6367 | 6369 | | |
6368 | 6370 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
349 | 349 | | |
350 | 350 | | |
351 | 351 | | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
0 commit comments