mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
62 lines
1.5 KiB
Plaintext
62 lines
1.5 KiB
Plaintext
// RUN: %swift -target i386-apple-ios7 %s -gnone -emit-ir | %FileCheck %s
|
|
// RUN: %swift -target armv7-apple-ios7 %s -gnone -emit-ir | %FileCheck %s
|
|
|
|
// REQUIRES: CODEGENERATOR=X86
|
|
// REQUIRES: CODEGENERATOR=ARM
|
|
|
|
// Check that we correctly lay out single-payload enums with a class reference
|
|
// payload as nullable pointers. <rdar://problem/16093103>
|
|
|
|
sil_stage canonical
|
|
|
|
import Builtin
|
|
|
|
class C {}
|
|
sil_vtable C {}
|
|
|
|
sil @_T011enum_32_bit1CCfD : $@convention(thin) (@owned C) -> ()
|
|
|
|
// CHECK-LABEL: %T11enum_32_bit3FooO = type <{ [4 x i8] }>
|
|
enum Foo {
|
|
case A(C)
|
|
case B
|
|
}
|
|
|
|
@objc protocol ClassExistential {}
|
|
|
|
// CHECK-LABEL: %T11enum_32_bit3BarO = type <{ [4 x i8] }>
|
|
enum Bar {
|
|
case A(ClassExistential)
|
|
case B
|
|
}
|
|
|
|
// CHECK-LABEL: %T11enum_32_bit3BasO = type <{ [4 x i8] }>
|
|
enum Bas {
|
|
case A(ClassExistential)
|
|
case B(C)
|
|
case Z
|
|
}
|
|
|
|
// CHECK-LABEL: define{{( protected)?}} swiftcc void @foo(i32)
|
|
sil @foo : $@convention(thin) (@owned Foo) -> () {
|
|
entry(%0 : $Foo):
|
|
return undef : $()
|
|
}
|
|
|
|
// CHECK-LABEL: define{{( protected)?}} swiftcc void @bar(i32)
|
|
sil @bar : $@convention(thin) (@owned Bar) -> () {
|
|
entry(%0 : $Bar):
|
|
return undef : $()
|
|
}
|
|
|
|
// CHECK-LABEL: define{{( protected)?}} swiftcc void @bas(i32)
|
|
sil @bas : $@convention(thin) (@owned Bas) -> () {
|
|
entry(%0 : $Bas):
|
|
return undef : $()
|
|
}
|
|
|
|
// Force instantiation of the IR types
|
|
sil @indirect_foo : $@convention(thin) (@in Foo) -> ()
|
|
sil @indirect_bar : $@convention(thin) (@in Bar) -> ()
|
|
sil @indirect_bas : $@convention(thin) (@in Bas) -> ()
|