// 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* @_T020archetype_resilienceytWc2_(%T20archetype_resilience36EnumWithClassArchetypeAndDynamicSizeO* %0, %T20archetype_resilience36EnumWithClassArchetypeAndDynamicSizeO* {{.*}}, %swift.type* %T, %swift.type* %"EnumWithClassArchetypeAndDynamicSize<T>")
// CHECK: ret void
sil @copyDynamicMultiEnum : $@convention(method) <T, U where T: AnyObject> (@in_guaranteed EnumWithClassArchetypeAndDynamicSize<T>) -> () {
bb0(%0 : $*EnumWithClassArchetypeAndDynamicSize<T>):
  %1 = alloc_stack $EnumWithClassArchetypeAndDynamicSize<T> 
  copy_addr %0 to [initialization] %1 : $*EnumWithClassArchetypeAndDynamicSize<T>
  dealloc_stack %1 : $*EnumWithClassArchetypeAndDynamicSize<T>
  %ret = tuple ()
  return %ret : $()
}
