| // RUN: %target-swift-frontend -assume-parsing-unqualified-ownership-sil -I %S/Inputs/abi %s -emit-ir | %FileCheck %s |
| |
| sil_stage canonical |
| import c_layout |
| |
| // CHECK-LABEL: @_T0SC14HasNestedUnionV18__Unnamed_struct_sVN = linkonce_odr hidden global |
| // CHECK-SAME: void (%swift.type*)* @initialize_metadata___Unnamed_struct_s, |
| // CHECK-SAME: i8* getelementptr inbounds |
| // CHECK-SAME: %swift.type* null, |
| // CHECK-SAME: [[INT:i[0-9]+]] 1, |
| // CHECK-SAME: @_T0SC14HasNestedUnionV18__Unnamed_struct_sVWV |
| // CHECK-SAME: [[INT]] 1, |
| // CHECK-SAME: [[INT]] sub ({{.*}}), |
| // CHECK-SAME: %swift.type* null, |
| // CHECK-SAME: [[INT]] 0, |
| // CHECK-SAME: [[INT]] 4 } |
| |
| sil @test0 : $() -> () { |
| bb0: |
| %0 = metatype $@thick HasNestedUnion.Type |
| |
| %ret = tuple () |
| return %ret : $() |
| } |
| |
| // CHECK-LABEL: define private void @initialize_metadata___Unnamed_struct_s |
| // CHECK: [[PARENT:%.*]] = call %swift.type* @_T0SC14HasNestedUnionVMa() |
| // CHECK-NEXT: [[T0:%.]] = bitcast %swift.type* %0 to %swift.type** |
| // CHECK-NEXT: [[T1:%.]] = getelementptr inbounds %swift.type*, %swift.type** [[T0]], [[INT]] 2 |
| // CHECK-NEXT: store %swift.type* [[PARENT]], %swift.type** [[T1]], |
| // CHECK-NEXT: ret void |