Skip to content

Commit a62ec5a

Browse files
committed
Fix _StringObject.init(object:...)
Add a missing fix_lifetime. This miscompiles with OSSA because `object` is destroyed before `bridgeObject` is retained. Reinterpreting a reference to a trivial type always requires a fix_lifetime. Fixes rdar://72936583 ([CanonicalOSSA] _StringObject.init(object:...) requires a _fixLifetime call)
1 parent c1d279e commit a62ec5a

File tree

1 file changed

+1
-0
lines changed

1 file changed

+1
-0
lines changed

stdlib/public/core/StringObject.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,7 @@ extension _StringObject {
207207
internal init(
208208
object: AnyObject, discriminator: UInt64, countAndFlags: CountAndFlags
209209
) {
210+
defer { _fixLifetime(object) }
210211
let builtinRawObject: Builtin.Int64 = Builtin.reinterpretCast(object)
211212
let builtinDiscrim: Builtin.Int64 = discriminator._value
212213
self.init(

0 commit comments

Comments
 (0)