Skip to content

Conversation

jckarter
Copy link
Contributor

Explanation: Fixes an assertion failure when switch-ing or potentially performing other operations on an InlineArray with a known-bitwise-copyable type but generic count.

Scope: Bug fix.

Issues: #84141, rdar://160007939

Original PR: #84264

Risk: Low. Small change that should have no effect on most existing code.

Testing: Swift CI, test case from bug report

Reviewers: @meg-gupta, @atrick

This is a new case that comes up with `InlineArray`, since an `InlineArray`
with unknown count but known trivial element type is trivial but still
address-only due to its unknown size. We are inconsistent about whether
we emit formal copies or not of these values; they should generally
be unnecessary as long as the memory location of a value is sufficiently
long-lived, but the SIL verifier still reasonably considers a `[take]` as
an invalidation of the memory, even though at runtime a take is a no-op.
Since the take is unnecessary, we can just not take when we copy out of
a trivial address location. Fixes swiftlang#84141 | rdar://160007939.
@jckarter jckarter requested a review from a team as a code owner September 12, 2025 21:07
@jckarter
Copy link
Contributor Author

@swift-ci Please test

@jckarter
Copy link
Contributor Author

@swift-ci Please test Linux

1 similar comment
@jckarter
Copy link
Contributor Author

@swift-ci Please test Linux

@jckarter jckarter merged commit 9016636 into swiftlang:release/6.2 Sep 20, 2025
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants