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

2 participants