// 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 @$S11enum_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) -> ()
