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:
Andrew Trick
2020-12-30 00:27:10 -08:00
parent 949b0c0cc3
commit c4661b9b47

View File

@@ -207,6 +207,7 @@ extension _StringObject {
internal init(
object: AnyObject, discriminator: UInt64, countAndFlags: CountAndFlags
) {
defer { _fixLifetime(object) }
let builtinRawObject: Builtin.Int64 = Builtin.reinterpretCast(object)
let builtinDiscrim: Builtin.Int64 = discriminator._value
self.init(