Commit 6b13814
committed
[Concurrency] IRGen: correct substitution for the createAsyncTaskFuture builtin.
Instead of substituting the AST type, substitute the SIL type. This preserves the calling convention.
E.g. if a function has an indirect @out T result, the substituted function must also have an indirect result.
The substituted AST type would just have a direct empty-tuple result.
Fixes a miscompile
rdar://723865041 parent 3e1b01a commit 6b13814
2 files changed
+29
-11
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3664 | 3664 | | |
3665 | 3665 | | |
3666 | 3666 | | |
3667 | | - | |
| 3667 | + | |
| 3668 | + | |
3668 | 3669 | | |
3669 | 3670 | | |
3670 | 3671 | | |
3671 | | - | |
3672 | | - | |
| 3672 | + | |
3673 | 3673 | | |
3674 | | - | |
| 3674 | + | |
| 3675 | + | |
3675 | 3676 | | |
3676 | | - | |
3677 | | - | |
| 3677 | + | |
| 3678 | + | |
| 3679 | + | |
3678 | 3680 | | |
3679 | | - | |
3680 | | - | |
3681 | 3681 | | |
3682 | | - | |
| 3682 | + | |
3683 | 3683 | | |
3684 | 3684 | | |
3685 | 3685 | | |
| |||
3700 | 3700 | | |
3701 | 3701 | | |
3702 | 3702 | | |
3703 | | - | |
| 3703 | + | |
3704 | 3704 | | |
3705 | 3705 | | |
3706 | 3706 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
59 | 59 | | |
60 | 60 | | |
61 | 61 | | |
62 | | - | |
| 62 | + | |
63 | 63 | | |
64 | 64 | | |
65 | 65 | | |
66 | 66 | | |
67 | 67 | | |
68 | 68 | | |
69 | 69 | | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
0 commit comments