blob: 242658d27bd1b4051406c046f48957691acb4311 [file] [log] [blame]
// REQUIRES: CPU=x86_64
// REQUIRES: OS=macosx
// RUN: %empty-directory(%t)
// RUN: %target-swift-frontend -emit-module -enable-resilience -emit-module-path=%t/resilient_struct.swiftmodule -module-name=resilient_struct %S/../Inputs/resilient_struct.swift
// RUN: %target-swift-frontend -emit-module -enable-resilience -emit-module-path=%t/resilient_enum.swiftmodule -module-name=resilient_enum -I %t %S/../Inputs/resilient_enum.swift
// RUN: %target-swift-frontend -I %t -emit-ir -enable-resilience %s | %FileCheck %s
sil_stage canonical
import Swift
import resilient_struct
public enum EnumWithClassArchetypeAndDynamicSize<T : AnyObject> {
case A(T)
case B(Size)
}
// CHECK-LABEL: define swiftcc void @copyDynamicMultiEnum(%swift.type* %"EnumWithClassArchetypeAndDynamicSize<T>", %swift.type* %U, %T20archetype_resilience36EnumWithClassArchetypeAndDynamicSizeO* noalias nocapture swiftself)
// CHECK: call %T20archetype_resilience36EnumWithClassArchetypeAndDynamicSizeO* @"$s20archetype_resilience36EnumWithClassArchetypeAndDynamicSizeOyxGRlzCr0_lWOc"(%T20archetype_resilience36EnumWithClassArchetypeAndDynamicSizeO* %0, %T20archetype_resilience36EnumWithClassArchetypeAndDynamicSizeO* {{.*}}, %swift.type* %"EnumWithClassArchetypeAndDynamicSize<T>")
// CHECK: ret void
sil @copyDynamicMultiEnum : $@convention(method) <T, U where T: AnyObject> (@in_guaranteed EnumWithClassArchetypeAndDynamicSize<T>) -> () {
bb0(%0 : @trivial $*EnumWithClassArchetypeAndDynamicSize<T>):
%1 = alloc_stack $EnumWithClassArchetypeAndDynamicSize<T>
copy_addr %0 to [initialization] %1 : $*EnumWithClassArchetypeAndDynamicSize<T>
dealloc_stack %1 : $*EnumWithClassArchetypeAndDynamicSize<T>
%ret = tuple ()
return %ret : $()
}