@@ -275,3 +275,46 @@ bb6:
275
275
%t = tuple ()
276
276
return %t : $()
277
277
}
278
+
279
+ sil @_swift_stdlib_isNSString : $@convention(c) (AnyObject) -> UInt8
280
+
281
+ // Ensure no crash in compiler
282
+ sil hidden [ossa] @test_clone_destroy_none : $@convention(thin) (@guaranteed AnyObject) -> Bool {
283
+ bb0(%0 : @guaranteed $AnyObject):
284
+ %3 = enum $Optional<(utf16Length: Int, asciiContentsPointer: UnsafePointer<UInt8>, untaggedCocoa: AnyObject)>, #Optional.none!enumelt
285
+ %4 = begin_borrow %3 : $Optional<(utf16Length: Int, asciiContentsPointer: UnsafePointer<UInt8>, untaggedCocoa: AnyObject)>
286
+ switch_enum %4 : $Optional<(utf16Length: Int, asciiContentsPointer: UnsafePointer<UInt8>, untaggedCocoa: AnyObject)>, case #Optional.some!enumelt: bb1, case #Optional.none!enumelt: bb2
287
+
288
+ bb1(%6 : @guaranteed $(utf16Length: Int, asciiContentsPointer: UnsafePointer<UInt8>, untaggedCocoa: AnyObject)):
289
+ end_borrow %4 : $Optional<(utf16Length: Int, asciiContentsPointer: UnsafePointer<UInt8>, untaggedCocoa: AnyObject)>
290
+ %8 = integer_literal $Builtin.Int1, -1
291
+ br bb3(%8 : $Builtin.Int1)
292
+
293
+ bb2:
294
+ end_borrow %4 : $Optional<(utf16Length: Int, asciiContentsPointer: UnsafePointer<UInt8>, untaggedCocoa: AnyObject)>
295
+ %11 = integer_literal $Builtin.Int1, 0
296
+ br bb3(%11 : $Builtin.Int1)
297
+
298
+ bb3(%13 : $Builtin.Int1):
299
+ destroy_value %3 : $Optional<(utf16Length: Int, asciiContentsPointer: UnsafePointer<UInt8>, untaggedCocoa: AnyObject)>
300
+ cond_br %13, bb4, bb5
301
+
302
+ bb4:
303
+ %16 = integer_literal $Builtin.Int1, -1
304
+ %17 = struct $Bool (%16 : $Builtin.Int1)
305
+ br bb6(%17 : $Bool)
306
+
307
+ bb5:
308
+ %19 = function_ref @_swift_stdlib_isNSString : $@convention(c) (AnyObject) -> UInt8
309
+ %20 = apply %19(%0) : $@convention(c) (AnyObject) -> UInt8
310
+ %21 = integer_literal $Builtin.Int8, 0
311
+ %22 = struct_extract %20 : $UInt8, #UInt8._value
312
+ %23 = builtin "cmp_eq_Int8"(%22 : $Builtin.Int8, %21 : $Builtin.Int8) : $Builtin.Int1
313
+ %24 = integer_literal $Builtin.Int1, -1
314
+ %25 = builtin "xor_Int1"(%23 : $Builtin.Int1, %24 : $Builtin.Int1) : $Builtin.Int1
315
+ %26 = struct $Bool (%25 : $Builtin.Int1)
316
+ br bb6(%26 : $Bool)
317
+
318
+ bb6(%28 : $Bool):
319
+ return %28 : $Bool
320
+ }
0 commit comments