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
Insert int3 after non-returning calls at the end of basic blocks.
This is a follow-up to dotnet#17501 that fixed #17398.
#17398 was caused by a break in implicit contract between codegen and
gc pointer reporting in fully-interruptible mode: the latter assumed that
register gc pointer liveness doesn't change across calls while dotnet#6103 introduced
codegen where it wasn't true.
dotnet#17501 changed gc pointer reporting not to expect that register gc pointer liveness
doesn't change across calls.
This change inserts int3 after non-returning calls at the end of basic blocks
so that gc pointer liveness doesn't change across calls. This is additional
insurance in case any other place in runtime was dependent on that contract.
0 commit comments