-
Notifications
You must be signed in to change notification settings - Fork 10.5k
[4.2] Exclusivity: Disable verifier assert on noescape closure block args. #18014
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[4.2] Exclusivity: Disable verifier assert on noescape closure block args. #18014
Conversation
@swift-ci test. |
@swift-ci test source compatibility. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
This is a small hole in the exclusivity model that verification is now catching in 4.2. On 4.2, disable the verification just in this narrow, unsupported case. This silences a harmless assert and reverts to the 4.2 behavior in this unusual corner case. The exclusivity enforcement hole will be fully fixed on master. Fixed <rdar://problem/42242406> [SR-8266]: Compiler crash when checking exclusivity of inout alias.
@swift-ci test. |
@swift-ci test source compatibility. |
@swift-ci test. |
@swift-ci test source compatibility. |
Explanation: 4.2 verifies the exclusivity model for completeness. This caught another corner case that has always been a small hole in the model. Disable verification in this narrow case to revert to Swift 4.1 behavior. The model will be fixed on master. Scope: Avoids a Debug assert. Does not affect Release builds. Radar/SR Issue: rdar://problem/42242406 [SR-8266]: Compiler crash when checking exclusivity of inout alias. Risk: This is a straightforward bypass of the assert. There is no new risk. Testing: New unit tests and existing compatibility tests were run. Reviewer: Joe Shajrawi |
@swift-ci nominate. |
There are a lot of unexpected passing tests in the SCK, but no actual failures. |
This is a small hole in the exclusivity model that verification is now catching
in 4.2. On 4.2, disable the verification just in this narrow, unsupported
case. This silences a harmless assert and reverts to the 4.1 behavior in this
unusual corner case. The exclusivity enforcement hole will be fully fixed on
master.
Fixed rdar://problem/42242406 [SR-8266]: Compiler crash when checking exclusivity of inout alias.