You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The issue here is that the demangler (since we have a postfix mangling) parses
parameters/results/etc and then uses earlier postfix type arguments to attach
the relevant types to the parameters/results/etc. Since the flag for a sending
result was placed in between the parameters and results, we get an off by one
error.
The reason why I originally did it this way is that part of sending was cargo
culted from the autodiff parts of the mangling and parts from the
async/isolated(any) part of the function type mangling. In this case, I followed
the location of the autodiff part of the mangling (which is per parameter)
instead of the async/isolated(any) part of the mangling (which are global flags)
which is what exposed this issue.
The good thing is if we eventually allow for sending to be placed on individual
parameters, we can potentially eliminate seeing this patter in future versions
of the ABI by just placing sending onto the parameters instead. This would
additionally allow for us to eliminate this offset code by checking for the flag
where it is and in such a case, just place it on each parameter as a flag.
rdar://141962865
0 commit comments