-
Notifications
You must be signed in to change notification settings - Fork 10.5k
[opt-remark] Print out the type when we retain/release. #33171
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
[opt-remark] Print out the type when we retain/release. #33171
Conversation
@swift-ci smoke test |
@swift-ci test windows platform |
This can be useful if we can't recognize a retain/release and one needs to reason about what is being retained/released.
3c7393d
to
ce298e9
Compare
@swift-ci smoke test |
@swift-ci smoke test OS X platform |
@swift-ci test windows platform |
print(x1) // expected-remark {{retain}} | ||
// expected-remark @-1 {{release}} | ||
// expected-remark @-2 {{release}} | ||
print(x1) // expected-remark {{retain of type 'SubKlass'}} |
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.
Hi @gottesmm,
Since the introduction of these changes the Android ARMv7 CI has been failing. The problem is this message and the similar message below for x2
. Instead of retain of type 'SubKlass'
I see retain of type 'Optional<SubKlass>'
(like the one in line 191 above). This only happens in ARMv7, and not AArch64, so it can be a difference in 32 bits vs. 64 bits. I have also seen cases in which Android ARMv7 seems to not apply some optimizations that AArch64 does.
I know it is a strange question, but do you have any idea of what can be happening here? If there's an easy fix it would be great to apply it. Otherwise I might XFAIL the test.
Thanks!
Android ARMv7 doesn't seem to simplify the remarks from Optional<SubKlass> to just SubKlass, while other platforms do. I did not find any clues in swiftlang#33171 what it might be happening, so XFAIL the test to avoid a failing build.
This can be useful if we can't recognize a retain/release and one needs to
reason about what is being retained/released.