| // RUN: %target-swift-frontend -assume-parsing-unqualified-ownership-sil -emit-ir %s | %FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-%target-ptrsize |
| |
| import Swift |
| |
| // CHECK-64: @"$S13indirect_enum5TreeAOWV" = internal constant {{.*}} i8* inttoptr ([[WORD:i64]] 8 to i8*), i8* inttoptr (i64 2162695 to i8*), i8* inttoptr (i64 8 to i8*) |
| // CHECK-32: @"$S13indirect_enum5TreeAOWV" = internal constant {{.*}} i8* inttoptr ([[WORD:i32]] 4 to i8*), i8* inttoptr (i32 2162691 to i8*), i8* inttoptr (i32 4 to i8*) |
| |
| // CHECK-NOT: define{{( protected)?}} private %swift.type** @get_field_types_TreeA |
| indirect enum TreeA<T> { |
| case Nil |
| case Leaf(T) |
| case Branch(left: TreeA<T>, right: TreeA<T>) |
| } |
| |
| // CHECK-NOT: define{{( protected)?}} private %swift.type** @get_field_types_TreeB |
| enum TreeB<T> { |
| case Nil |
| case Leaf(T) |
| indirect case Branch(left: TreeB<T>, right: TreeB<T>) |
| } |
| |
| // CHECK-NOT: define{{( protected)?}} private %swift.type** @get_field_types_Foo |
| enum Foo<T> { |
| indirect case Foo(Int) |
| case Bar(T) |
| } |
| |
| // rdar://problem/22169679 |
| enum E<T> { |
| indirect case A(E) |
| case B(T) |
| } |