-
Notifications
You must be signed in to change notification settings - Fork 10.2k
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
Fix global accessor and class linker errors in package. #73686
Conversation
d26265f
to
e3cce07
Compare
@swift-ci smoke test |
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.
Nice catch!
1fefb0d
to
c379f0a
Compare
@swift-ci smoke test |
c379f0a
to
58cc800
Compare
@swift-ci smoke test |
58cc800
to
34d9594
Compare
@swift-ci smoke test |
97d5ef3
to
c80f6c5
Compare
9dfe9e3
to
f83861e
Compare
Add global accessors to symbol list if VarDecl is fragile, i.e. is non-resilient or its defining module allows non-resilient access. Don't set the class decl to hidden if it's in a package resilience domain; even though its defining module is built resilently, the class symbol should be visible across modules if they are in the same package with resilience-bypass optimization. In such case, treat its SubclassScope to Internal. Resolves rdar://127321129
f83861e
to
80855c8
Compare
@swift-ci smoke test |
@swift-ci smoke test |
d72f92b
to
36b4d2d
Compare
Add isStrictlyResilient() to nominal type and module decl.
@swift-ci smoke test |
@@ -5142,6 +5146,10 @@ bool NominalTypeDecl::isResilient() const { | |||
return getModuleContext()->isResilient(); | |||
} | |||
|
|||
bool NominalTypeDecl::isStrictlyResilient() const { |
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.
Nitpick: strict
is vague when used as an API name. A better alternative could be something like isNonResilientAccessDisallowed()
When package resilience optimization is enabled, global accessor symbols are not added to the SIL symbol list, causing a linker issue.
Resolves rdar://127321129&127308331