<div class="socmaildefaultfont" dir="ltr" style="font-family:Arial;font-size:10.5pt" ><div dir="ltr" style="font-family:Arial;font-size:10.5pt" ><div dir="ltr" style="font-family:Arial;font-size:10.5pt" ><div dir="ltr" style="font-family:Arial;font-size:10.5pt" ><div dir="ltr" ><div dir="ltr" >Hi,</div>
<div dir="ltr" > </div>
<div dir="ltr" >I am trying to fix the typeref_lowering tet on the LinuxONE platform (s390x).</div>
<div dir="ltr" >Due to differernce in value of SWIFT_ABI_DEFAULT_OBJC_RESERVED_BITS_MASK the num_extra_inhabitants is different for some structures.</div>
<div dir="ltr" >I just wanted a opinion on the best way to fix this issue as the one which I have looks a bit messy to me.</div>
<div dir="ltr" >Note: I have modified the FileCheck params to have arch based matching.</div>
<div dir="ltr" > </div>
<div dir="ltr" >Below is a diff which passes on both the x86_64 and s390x platform.</div>
<div dir="ltr" ><div style="outline: none;" >diff --git a/test/Reflection/typeref_lowering.swift b/test/Reflection/typeref_lowering.swift<br style="outline: none;" >index c2d721c..15f971c 100644<br style="outline: none;" >--- a/test/Reflection/typeref_lowering.swift<br style="outline: none;" >+++ b/test/Reflection/typeref_lowering.swift<br style="outline: none;" >@@ -1,6 +1,6 @@<br style="outline: none;" > // RUN: rm -rf %t && mkdir -p %t<br style="outline: none;" > // RUN: %target-build-swift %S/Inputs/TypeLowering.swift -parse-as-library -emit-module -emit-library -module-name TypeLowering -o %t/libTypesToReflect.%target-dylib-extension<br style="outline: none;" >-// RUN: %target-swift-reflection-dump -binary-filename %t/libTypesToReflect.%target-dylib-extension -binary-filename %platform-module-dir/libswiftCore.%target-dylib-extension -dump-type-lowering < %s | %FileCheck %s --check-prefix=CHECK-%target-ptrsize<br style="outline: none;" >+// RUN: %target-swift-reflection-dump -binary-filename %t/libTypesToReflect.%target-dylib-extension -binary-filename %platform-module-dir/libswiftCore.%target-dylib-extension -dump-type-lowering < %s | %FileCheck %s --check-prefix=CHECK-%target-ptrsize --check-prefix=CHECK-%target-cpu</div>
<div style="outline: none;" > V12TypeLowering11BasicStruct<br style="outline: none;" > // CHECK-64: (struct TypeLowering.BasicStruct)<br style="outline: none;" >@@ -170,34 +170,63 @@ TGV12TypeLowering3BoxVs5Int16_Vs5Int32_</div>
<div style="outline: none;" ><br style="outline: none;" > V12TypeLowering15ReferenceStruct<br style="outline: none;" >-// CHECK-64: (struct TypeLowering.ReferenceStruct)<br style="outline: none;" >-// CHECK-64-NEXT: (struct size=72 alignment=8 stride=72 num_extra_inhabitants=[[PTR_XI:2048|2147483647]]<br style="outline: none;" >-// CHECK-64-NEXT: (field name=strongRef offset=0<br style="outline: none;" >-// CHECK-64-NEXT: (reference kind=strong refcounting=native))<br style="outline: none;" >-// CHECK-64-NEXT: (field name=optionalStrongRef offset=8<br style="outline: none;" >-// CHECK-64-NEXT: (single_payload_enum size=8 alignment=8 stride=8 num_extra_inhabitants=[[PTR_XI_SUB_1:2047|2147483646]]<br style="outline: none;" >-// CHECK-64-NEXT: (field name=some offset=0<br style="outline: none;" >-// CHECK-64-NEXT: (reference kind=strong refcounting=native))))<br style="outline: none;" >-// CHECK-64-NEXT: (field name=strongRefTuple offset=16<br style="outline: none;" >-// CHECK-64-NEXT: (tuple size=16 alignment=8 stride=16 num_extra_inhabitants=[[PTR_XI]]<br style="outline: none;" >-// CHECK-64-NEXT: (field offset=0<br style="outline: none;" >-// CHECK-64-NEXT: (reference kind=strong refcounting=native))<br style="outline: none;" >-// CHECK-64-NEXT: (field offset=8<br style="outline: none;" >-// CHECK-64-NEXT: (reference kind=strong refcounting=native))))<br style="outline: none;" >-// CHECK-64-NEXT: (field name=optionalStrongRefTuple offset=32<br style="outline: none;" >-// CHECK-64-NEXT: (single_payload_enum size=16 alignment=8 stride=16 num_extra_inhabitants=[[PTR_XI_SUB_1]]<br style="outline: none;" >-// CHECK-64-NEXT: (field name=some offset=0<br style="outline: none;" >-// CHECK-64-NEXT: (tuple size=16 alignment=8 stride=16 num_extra_inhabitants=[[PTR_XI]]<br style="outline: none;" >-// CHECK-64-NEXT: (field offset=0<br style="outline: none;" >-// CHECK-64-NEXT: (reference kind=strong refcounting=native))<br style="outline: none;" >-// CHECK-64-NEXT: (field offset=8<br style="outline: none;" >-// CHECK-64-NEXT: (reference kind=strong refcounting=native))))))<br style="outline: none;" >-// CHECK-64-NEXT: (field name=unownedRef offset=48<br style="outline: none;" >-// CHECK-64-NEXT: (reference kind=unowned refcounting=native))<br style="outline: none;" >-// CHECK-64-NEXT: (field name=weakRef offset=56<br style="outline: none;" >-// CHECK-64-NEXT: (reference kind=weak refcounting=native))<br style="outline: none;" >-// CHECK-64-NEXT: (field name=unmanagedRef offset=64<br style="outline: none;" >-// CHECK-64-NEXT: (reference kind=unmanaged refcounting=native)))<br style="outline: none;" >+// CHECK-x86_64: (struct TypeLowering.ReferenceStruct)<br style="outline: none;" >+// CHECK-x86_64-NEXT: (struct size=72 alignment=8 stride=72 num_extra_inhabitants=[[PTR_XI:2048|2147483647]]<br style="outline: none;" >+// CHECK-x86_64-NEXT: (field name=strongRef offset=0<br style="outline: none;" >+// CHECK-x86_64-NEXT: (reference kind=strong refcounting=native))<br style="outline: none;" >+// CHECK-x86_64-NEXT: (field name=optionalStrongRef offset=8<br style="outline: none;" >+// CHECK-x86_64-NEXT: (single_payload_enum size=8 alignment=8 stride=8 num_extra_inhabitants=[[PTR_XI_SUB_1:2047|2147483646]]<br style="outline: none;" >+// CHECK-x86_64-NEXT: (field name=some offset=0<br style="outline: none;" >+// CHECK-x86_64-NEXT: (reference kind=strong refcounting=native))))<br style="outline: none;" >+// CHECK-x86_64-NEXT: (field name=strongRefTuple offset=16<br style="outline: none;" >+// CHECK-x86_64-NEXT: (tuple size=16 alignment=8 stride=16 num_extra_inhabitants=[[PTR_XI]]<br style="outline: none;" >+// CHECK-x86_64-NEXT: (field offset=0<br style="outline: none;" >+// CHECK-x86_64-NEXT: (reference kind=strong refcounting=native))<br style="outline: none;" >+// CHECK-x86_64-NEXT: (field offset=8<br style="outline: none;" >+// CHECK-x86_64-NEXT: (reference kind=strong refcounting=native))))<br style="outline: none;" >+// CHECK-x86_64-NEXT: (field name=optionalStrongRefTuple offset=32<br style="outline: none;" >+// CHECK-x86_64-NEXT: (single_payload_enum size=16 alignment=8 stride=16 num_extra_inhabitants=[[PTR_XI_SUB_1]]</div>
<div style="outline: none;" ><div style="outline: none;" >+// CHECK-x86_64-NEXT: (field name=some offset=0<br style="outline: none;" >+// CHECK-x86_64-NEXT: (tuple size=16 alignment=8 stride=16 num_extra_inhabitants=[[PTR_XI]]<br style="outline: none;" >+// CHECK-x86_64-NEXT: (field offset=0<br style="outline: none;" >+// CHECK-x86_64-NEXT: (reference kind=strong refcounting=native))<br style="outline: none;" >+// CHECK-x86_64-NEXT: (field offset=8<br style="outline: none;" >+// CHECK-x86_64-NEXT: (reference kind=strong refcounting=native))))))<br style="outline: none;" >+// CHECK-x86_64-NEXT: (field name=unownedRef offset=48<br style="outline: none;" >+// CHECK-x86_64-NEXT: (reference kind=unowned refcounting=native))<br style="outline: none;" >+// CHECK-x86_64-NEXT: (field name=weakRef offset=56<br style="outline: none;" >+// CHECK-x86_64-NEXT: (reference kind=weak refcounting=native))<br style="outline: none;" >+// CHECK-x86_64-NEXT: (field name=unmanagedRef offset=64<br style="outline: none;" >+// CHECK-x86_64-NEXT: (reference kind=unmanaged refcounting=native)))<br style="outline: none;" >+<br style="outline: none;" >+// CHECK-s390x: (struct TypeLowering.ReferenceStruct)<br style="outline: none;" >+// CHECK-s390x-NEXT: (struct size=72 alignment=8 stride=72 num_extra_inhabitants=[[PTR_XI:4096|2147483647]]<br style="outline: none;" >+// CHECK-s390x-NEXT: (field name=strongRef offset=0<br style="outline: none;" >+// CHECK-s390x-NEXT: (reference kind=strong refcounting=native))<br style="outline: none;" >+// CHECK-s390x-NEXT: (field name=optionalStrongRef offset=8<br style="outline: none;" >+// CHECK-s390x-NEXT: (single_payload_enum size=8 alignment=8 stride=8 num_extra_inhabitants=[[PTR_XI_SUB_1:4095|2147483646]]<br style="outline: none;" >+// CHECK-s390x-NEXT: (field name=some offset=0<br style="outline: none;" >+// CHECK-s390x-NEXT: (reference kind=strong refcounting=native))))<br style="outline: none;" >+// CHECK-s390x-NEXT: (field name=strongRefTuple offset=16<br style="outline: none;" >+// CHECK-s390x-NEXT: (tuple size=16 alignment=8 stride=16 num_extra_inhabitants=[[PTR_XI]]<br style="outline: none;" >+// CHECK-s390x-NEXT: (field offset=0<br style="outline: none;" >+// CHECK-s390x-NEXT: (reference kind=strong refcounting=native))<br style="outline: none;" >+// CHECK-s390x-NEXT: (field offset=8<br style="outline: none;" >+// CHECK-s390x-NEXT: (reference kind=strong refcounting=native))))<br style="outline: none;" >+// CHECK-s390x-NEXT: (field name=optionalStrongRefTuple offset=32<br style="outline: none;" >+// CHECK-s390x-NEXT: (single_payload_enum size=16 alignment=8 stride=16 num_extra_inhabitants=[[PTR_XI_SUB_1]]<br style="outline: none;" >+// CHECK-s390x-NEXT: (field name=some offset=0<br style="outline: none;" >+// CHECK-s390x-NEXT: (tuple size=16 alignment=8 stride=16 num_extra_inhabitants=[[PTR_XI]]<br style="outline: none;" >+// CHECK-s390x-NEXT: (field offset=0<br style="outline: none;" >+// CHECK-s390x-NEXT: (reference kind=strong refcounting=native))<br style="outline: none;" >+// CHECK-s390x-NEXT: (field offset=8<br style="outline: none;" >+// CHECK-s390x-NEXT: (reference kind=strong refcounting=native))))))<br style="outline: none;" >+// CHECK-s390x-NEXT: (field name=unownedRef offset=48<br style="outline: none;" >+// CHECK-s390x-NEXT: (reference kind=unowned refcounting=native))<br style="outline: none;" >+// CHECK-s390x-NEXT: (field name=weakRef offset=56<br style="outline: none;" >+// CHECK-s390x-NEXT: (reference kind=weak refcounting=native))<br style="outline: none;" >+// CHECK-s390x-NEXT: (field name=unmanagedRef offset=64<br style="outline: none;" >+// CHECK-s390x-NEXT: (reference kind=unmanaged refcounting=native)))</div>
<div style="outline: none;" > // CHECK-32: (struct TypeLowering.ReferenceStruct)<br style="outline: none;" > // CHECK-32-NEXT: (struct size=36 alignment=4 stride=36 num_extra_inhabitants=4096<br style="outline: none;" >@@ -686,57 +715,107 @@ V12TypeLowering14MetatypeStruct<br style="outline: none;" > // CHECK-32-NEXT: (builtin size=4 alignment=4 stride=4 num_extra_inhabitants=4096)))))</div>
<div style="outline: none;" > V12TypeLowering10EnumStruct<br style="outline: none;" >-// CHECK-64: (struct TypeLowering.EnumStruct)<br style="outline: none;" >-// CHECK-64-NEXT: (struct size=81 alignment=8 stride=88 num_extra_inhabitants=0<br style="outline: none;" >-// CHECK-64-NEXT: (field name=empty offset=0<br style="outline: none;" >-// CHECK-64-NEXT: (no_payload_enum size=0 alignment=0 stride=0 num_extra_inhabitants=0))<br style="outline: none;" >-// CHECK-64-NEXT: (field name=noPayload offset=0<br style="outline: none;" >-// CHECK-64-NEXT: (no_payload_enum size=1 alignment=0 stride=0 num_extra_inhabitants=0))<br style="outline: none;" >-// CHECK-64-NEXT: (field name=sillyNoPayload offset=0<br style="outline: none;" >-// CHECK-64-NEXT: (no_payload_enum size=1 alignment=0 stride=0 num_extra_inhabitants=0))<br style="outline: none;" >-// CHECK-64-NEXT: (field name=singleton offset=8<br style="outline: none;" >-// CHECK-64-NEXT: (reference kind=strong refcounting=native))<br style="outline: none;" >-// CHECK-64-NEXT: (field name=singlePayload offset=16<br style="outline: none;" >-// CHECK-64-NEXT: (single_payload_enum size=8 alignment=8 stride=8 num_extra_inhabitants=[[PTR_XI_SUB_1]]<br style="outline: none;" >-// CHECK-64-NEXT: (field name=Indirect offset=0<br style="outline: none;" >-// CHECK-64-NEXT: (reference kind=strong refcounting=native))))<br style="outline: none;" >-// CHECK-64-NEXT: (field name=multiPayloadConcrete offset=24<br style="outline: none;" >-// CHECK-64-NEXT: (multi_payload_enum size=8 alignment=8 stride=8 num_extra_inhabitants=0<br style="outline: none;" >-// CHECK-64-NEXT: (field name=Left offset=0<br style="outline: none;" >-// CHECK-64-NEXT: (reference kind=strong refcounting=native))<br style="outline: none;" >-// CHECK-64-NEXT: (field name=Right offset=0<br style="outline: none;" >-// CHECK-64-NEXT: (reference kind=strong refcounting=native))))<br style="outline: none;" >-// CHECK-64-NEXT: (field name=multiPayloadGenericFixed offset=32<br style="outline: none;" >-// CHECK-64-NEXT: (multi_payload_enum size=9 alignment=8 stride=16 num_extra_inhabitants=0<br style="outline: none;" >-// CHECK-64-NEXT: (field name=Left offset=0<br style="outline: none;" >-// CHECK-64-NEXT: (reference kind=strong refcounting=native))<br style="outline: none;" >-// CHECK-64-NEXT: (field name=Right offset=0<br style="outline: none;" >-// CHECK-64-NEXT: (reference kind=strong refcounting=native))))<br style="outline: none;" >-// CHECK-64-NEXT: (field name=multiPayloadGenericDynamic offset=48<br style="outline: none;" >-// CHECK-64-NEXT: (multi_payload_enum size=9 alignment=8 stride=16 num_extra_inhabitants=0<br style="outline: none;" >-// CHECK-64-NEXT: (field name=Left offset=0<br style="outline: none;" >-// CHECK-64-NEXT: (struct size=1 alignment=1 stride=1 num_extra_inhabitants=0<br style="outline: none;" >-// CHECK-64-NEXT: (field name=_value offset=0<br style="outline: none;" >-// CHECK-64-NEXT: (builtin size=1 alignment=1 stride=1 num_extra_inhabitants=0))))<br style="outline: none;" >-// CHECK-64-NEXT: (field name=Right offset=0<br style="outline: none;" >-// CHECK-64-NEXT: (struct size=8 alignment=8 stride=8 num_extra_inhabitants=0<br style="outline: none;" >-// CHECK-64-NEXT: (field name=_value offset=0<br style="outline: none;" >-// CHECK-64-NEXT: (builtin size=8 alignment=8 stride=8 num_extra_inhabitants=0))))))<br style="outline: none;" >-// CHECK-64-NEXT: (field name=optionalOptionalRef offset=64<br style="outline: none;" >-// CHECK-64-NEXT: (single_payload_enum size=8 alignment=8 stride=8 num_extra_inhabitants=[[PTR_XI_SUB_2:2147483645|2046]]<br style="outline: none;" >-// CHECK-64-NEXT: (field name=some offset=0<br style="outline: none;" >-// CHECK-64-NEXT: (single_payload_enum size=8 alignment=8 stride=8 num_extra_inhabitants=[[PTR_XI_SUB_1]]<br style="outline: none;" >-// CHECK-64-NEXT: (field name=some offset=0<br style="outline: none;" >-// CHECK-64-NEXT: (reference kind=strong refcounting=native))))))<br style="outline: none;" >-// CHECK-64-NEXT: (field name=optionalOptionalPtr offset=72<br style="outline: none;" >-// CHECK-64-NEXT: (single_payload_enum size=9 alignment=8 stride=16 num_extra_inhabitants=0<br style="outline: none;" >-// CHECK-64-NEXT: (field name=some offset=0<br style="outline: none;" >-// CHECK-64-NEXT: (single_payload_enum size=8 alignment=8 stride=8 num_extra_inhabitants=0<br style="outline: none;" >-// CHECK-64-NEXT: (field name=some offset=0<br style="outline: none;" >-// CHECK-64-NEXT: (struct size=8 alignment=8 stride=8 num_extra_inhabitants=1<br style="outline: none;" >-// CHECK-64-NEXT: (field name=_rawValue offset=0<br style="outline: none;" >-// CHECK-64-NEXT: (builtin size=8 alignment=8 stride=8 num_extra_inhabitants=1)))))))))<br style="outline: none;" >+// CHECK-x86_64: (struct TypeLowering.EnumStruct)<br style="outline: none;" >+// CHECK-x86_64-NEXT: (struct size=81 alignment=8 stride=88 num_extra_inhabitants=0<br style="outline: none;" >+// CHECK-x86_64-NEXT: (field name=empty offset=0<br style="outline: none;" >+// CHECK-x86_64-NEXT: (no_payload_enum size=0 alignment=0 stride=0 num_extra_inhabitants=0))<br style="outline: none;" >+// CHECK-x86_64-NEXT: (field name=noPayload offset=0<br style="outline: none;" >+// CHECK-x86_64-NEXT: (no_payload_enum size=1 alignment=0 stride=0 num_extra_inhabitants=0))<br style="outline: none;" >+// CHECK-x86_64-NEXT: (field name=sillyNoPayload offset=0<br style="outline: none;" >+// CHECK-x86_64-NEXT: (no_payload_enum size=1 alignment=0 stride=0 num_extra_inhabitants=0))<br style="outline: none;" >+// CHECK-x86_64-NEXT: (field name=singleton offset=8<br style="outline: none;" >+// CHECK-x86_64-NEXT: (reference kind=strong refcounting=native))<br style="outline: none;" >+// CHECK-x86_64-NEXT: (field name=singlePayload offset=16<br style="outline: none;" >+// CHECK-x86_64-NEXT: (single_payload_enum size=8 alignment=8 stride=8 num_extra_inhabitants=[[PTR_XI_SUB_1]]<br style="outline: none;" >+// CHECK-x86_64-NEXT: (field name=Indirect offset=0<br style="outline: none;" >+// CHECK-x86_64-NEXT: (reference kind=strong refcounting=native))))<br style="outline: none;" >+// CHECK-x86_64-NEXT: (field name=multiPayloadConcrete offset=24<br style="outline: none;" >+// CHECK-x86_64-NEXT: (multi_payload_enum size=8 alignment=8 stride=8 num_extra_inhabitants=0<br style="outline: none;" >+// CHECK-x86_64-NEXT: (field name=Left offset=0<br style="outline: none;" >+// CHECK-x86_64-NEXT: (reference kind=strong refcounting=native))<br style="outline: none;" >+// CHECK-x86_64-NEXT: (field name=Right offset=0<br style="outline: none;" >+// CHECK-x86_64-NEXT: (reference kind=strong refcounting=native))))<br style="outline: none;" >+// CHECK-x86_64-NEXT: (field name=multiPayloadGenericFixed offset=32<br style="outline: none;" >+// CHECK-x86_64-NEXT: (multi_payload_enum size=9 alignment=8 stride=16 num_extra_inhabitants=0<br style="outline: none;" >+// CHECK-x86_64-NEXT: (field name=Left offset=0<br style="outline: none;" >+// CHECK-x86_64-NEXT: (reference kind=strong refcounting=native))<br style="outline: none;" >+// CHECK-x86_64-NEXT: (field name=Right offset=0<br style="outline: none;" >+// CHECK-x86_64-NEXT: (reference kind=strong refcounting=native))))
<div style="outline: none;" >+// CHECK-x86_64-NEXT: (field name=multiPayloadGenericDynamic offset=48<br style="outline: none;" >+// CHECK-x86_64-NEXT: (multi_payload_enum size=9 alignment=8 stride=16 num_extra_inhabitants=0<br style="outline: none;" >+// CHECK-x86_64-NEXT: (field name=Left offset=0<br style="outline: none;" >+// CHECK-x86_64-NEXT: (struct size=1 alignment=1 stride=1 num_extra_inhabitants=0<br style="outline: none;" >+// CHECK-x86_64-NEXT: (field name=_value offset=0<br style="outline: none;" >+// CHECK-x86_64-NEXT: (builtin size=1 alignment=1 stride=1 num_extra_inhabitants=0))))<br style="outline: none;" >+// CHECK-x86_64-NEXT: (field name=Right offset=0<br style="outline: none;" >+// CHECK-x86_64-NEXT: (struct size=8 alignment=8 stride=8 num_extra_inhabitants=0<br style="outline: none;" >+// CHECK-x86_64-NEXT: (field name=_value offset=0<br style="outline: none;" >+// CHECK-x86_64-NEXT: (builtin size=8 alignment=8 stride=8 num_extra_inhabitants=0))))))<br style="outline: none;" >+// CHECK-x86_64-NEXT: (field name=optionalOptionalRef offset=64<br style="outline: none;" >+// CHECK-x86_64-NEXT: (single_payload_enum size=8 alignment=8 stride=8 num_extra_inhabitants=[[PTR_XI_SUB_2:2147483645|2046]]<br style="outline: none;" >+// CHECK-x86_64-NEXT: (field name=some offset=0<br style="outline: none;" >+// CHECK-x86_64-NEXT: (single_payload_enum size=8 alignment=8 stride=8 num_extra_inhabitants=[[PTR_XI_SUB_1]]<br style="outline: none;" >+// CHECK-x86_64-NEXT: (field name=some offset=0<br style="outline: none;" >+// CHECK-x86_64-NEXT: (reference kind=strong refcounting=native))))))<br style="outline: none;" >+// CHECK-x86_64-NEXT: (field name=optionalOptionalPtr offset=72<br style="outline: none;" >+// CHECK-x86_64-NEXT: (single_payload_enum size=9 alignment=8 stride=16 num_extra_inhabitants=0<br style="outline: none;" >+// CHECK-x86_64-NEXT: (field name=some offset=0<br style="outline: none;" >+// CHECK-x86_64-NEXT: (single_payload_enum size=8 alignment=8 stride=8 num_extra_inhabitants=0<br style="outline: none;" >+// CHECK-x86_64-NEXT: (field name=some offset=0<br style="outline: none;" >+// CHECK-x86_64-NEXT: (struct size=8 alignment=8 stride=8 num_extra_inhabitants=1<br style="outline: none;" >+// CHECK-x86_64-NEXT: (field name=_rawValue offset=0<br style="outline: none;" >+// CHECK-x86_64-NEXT: (builtin size=8 alignment=8 stride=8 num_extra_inhabitants=1)))))))))</div>
<div style="outline: none;" >+// CHECK-s390x: (struct TypeLowering.EnumStruct)<br style="outline: none;" >+// CHECK-s390x-NEXT: (struct size=81 alignment=8 stride=88 num_extra_inhabitants=0<br style="outline: none;" >+// CHECK-s390x-NEXT: (field name=empty offset=0<br style="outline: none;" >+// CHECK-s390x-NEXT: (no_payload_enum size=0 alignment=0 stride=0 num_extra_inhabitants=0))<br style="outline: none;" >+// CHECK-s390x-NEXT: (field name=noPayload offset=0<br style="outline: none;" >+// CHECK-s390x-NEXT: (no_payload_enum size=1 alignment=0 stride=0 num_extra_inhabitants=0))<br style="outline: none;" >+// CHECK-s390x-NEXT: (field name=sillyNoPayload offset=0<br style="outline: none;" >+// CHECK-s390x-NEXT: (no_payload_enum size=1 alignment=0 stride=0 num_extra_inhabitants=0))<br style="outline: none;" >+// CHECK-s390x-NEXT: (field name=singleton offset=8<br style="outline: none;" >+// CHECK-s390x-NEXT: (reference kind=strong refcounting=native))<br style="outline: none;" >+// CHECK-s390x-NEXT: (field name=singlePayload offset=16<br style="outline: none;" >+// CHECK-s390x-NEXT: (single_payload_enum size=8 alignment=8 stride=8 num_extra_inhabitants=[[PTR_XI_SUB_1]]<br style="outline: none;" >+// CHECK-s390x-NEXT: (field name=Indirect offset=0<br style="outline: none;" >+// CHECK-s390x-NEXT: (reference kind=strong refcounting=native))))<br style="outline: none;" >+// CHECK-s390x-NEXT: (field name=multiPayloadConcrete offset=24<br style="outline: none;" >+// CHECK-s390x-NEXT: (multi_payload_enum size=8 alignment=8 stride=8 num_extra_inhabitants=0<br style="outline: none;" >+// CHECK-s390x-NEXT: (field name=Left offset=0<br style="outline: none;" >+// CHECK-s390x-NEXT: (reference kind=strong refcounting=native))<br style="outline: none;" >+// CHECK-s390x-NEXT: (field name=Right offset=0<br style="outline: none;" >+// CHECK-s390x-NEXT: (reference kind=strong refcounting=native))))<br style="outline: none;" >+// CHECK-s390x-NEXT: (field name=multiPayloadGenericFixed offset=32<br style="outline: none;" >+// CHECK-s390x-NEXT: (multi_payload_enum size=9 alignment=8 stride=16 num_extra_inhabitants=0<br style="outline: none;" >+// CHECK-s390x-NEXT: (field name=Left offset=0<br style="outline: none;" >+// CHECK-s390x-NEXT: (reference kind=strong refcounting=native))<br style="outline: none;" >+// CHECK-s390x-NEXT: (field name=Right offset=0<br style="outline: none;" >+// CHECK-s390x-NEXT: (reference kind=strong refcounting=native))))<br style="outline: none;" >+// CHECK-s390x-NEXT: (field name=multiPayloadGenericDynamic offset=48<br style="outline: none;" >+// CHECK-s390x-NEXT: (multi_payload_enum size=9 alignment=8 stride=16 num_extra_inhabitants=0<br style="outline: none;" >+// CHECK-s390x-NEXT: (field name=Left offset=0<br style="outline: none;" >+// CHECK-s390x-NEXT: (struct size=1 alignment=1 stride=1 num_extra_inhabitants=0<br style="outline: none;" >+// CHECK-s390x-NEXT: (field name=_value offset=0<br style="outline: none;" >+// CHECK-s390x-NEXT: (builtin size=1 alignment=1 stride=1 num_extra_inhabitants=0))))<br style="outline: none;" >+// CHECK-s390x-NEXT: (field name=Right offset=0<br style="outline: none;" >+// CHECK-s390x-NEXT: (struct size=8 alignment=8 stride=8 num_extra_inhabitants=0<br style="outline: none;" >+// CHECK-s390x-NEXT: (field name=_value offset=0<br style="outline: none;" >+// CHECK-s390x-NEXT: (builtin size=8 alignment=8 stride=8 num_extra_inhabitants=0))))))<br style="outline: none;" >+// CHECK-s390x-NEXT: (field name=optionalOptionalRef offset=64<br style="outline: none;" >+// CHECK-s390x-NEXT: (single_payload_enum size=8 alignment=8 stride=8 num_extra_inhabitants=[[PTR_XI_2_SUB_2:2147483645|4094]]<br style="outline: none;" >+// CHECK-s390x-NEXT: (field name=some offset=0<br style="outline: none;" >+// CHECK-s390x-NEXT: (single_payload_enum size=8 alignment=8 stride=8 num_extra_inhabitants=[[PTR_XI_SUB_1]]<br style="outline: none;" >+// CHECK-s390x-NEXT: (field name=some offset=0<br style="outline: none;" >+// CHECK-s390x-NEXT: (reference kind=strong refcounting=native))))))<br style="outline: none;" >+// CHECK-s390x-NEXT: (field name=optionalOptionalPtr offset=72<br style="outline: none;" >+// CHECK-s390x-NEXT: (single_payload_enum size=9 alignment=8 stride=16 num_extra_inhabitants=0<br style="outline: none;" >+// CHECK-s390x-NEXT: (field name=some offset=0<br style="outline: none;" >+// CHECK-s390x-NEXT: (single_payload_enum size=8 alignment=8 stride=8 num_extra_inhabitants=0<br style="outline: none;" >+// CHECK-s390x-NEXT: (field name=some offset=0<br style="outline: none;" >+// CHECK-s390x-NEXT: (struct size=8 alignment=8 stride=8 num_extra_inhabitants=1<br style="outline: none;" >+// CHECK-s390x-NEXT: (field name=_rawValue offset=0<br style="outline: none;" >+// CHECK-s390x-NEXT: (builtin size=8 alignment=8 stride=8 num_extra_inhabitants=1)))))))))<br style="outline: none;" > </div></div></div></div>
<div dir="ltr" > </div>
<div dir="ltr" > </div>
<div dir="ltr" >Thanks</div>
<div dir="ltr" >Raminder Sodhi</div></div></div></div></div></div><BR>