mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
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.
This commit is contained in:
@@ -207,6 +207,7 @@ extension _StringObject {
|
|||||||
internal init(
|
internal init(
|
||||||
object: AnyObject, discriminator: UInt64, countAndFlags: CountAndFlags
|
object: AnyObject, discriminator: UInt64, countAndFlags: CountAndFlags
|
||||||
) {
|
) {
|
||||||
|
defer { _fixLifetime(object) }
|
||||||
let builtinRawObject: Builtin.Int64 = Builtin.reinterpretCast(object)
|
let builtinRawObject: Builtin.Int64 = Builtin.reinterpretCast(object)
|
||||||
let builtinDiscrim: Builtin.Int64 = discriminator._value
|
let builtinDiscrim: Builtin.Int64 = discriminator._value
|
||||||
self.init(
|
self.init(
|
||||||
|
|||||||
Reference in New Issue
Block a user