// RUN: %target-swift-frontend -assume-parsing-unqualified-ownership-sil -emit-ir -verify %s sil_stage canonical struct Empty {} enum SinglePayload { case A(T) case B() case C(Empty) } enum MultiPayload { case A(T) case B(U) case C() case D() case E(Empty) case F(Empty) } sil @project_empty_payloads_single : $@convention(thin) (@in SinglePayload) -> () { entry(%0 : $*SinglePayload): %1 = init_enum_data_addr %0 : $*SinglePayload, #SinglePayload.B!enumelt.1 %2 = init_enum_data_addr %0 : $*SinglePayload, #SinglePayload.C!enumelt.1 %3 = unchecked_take_enum_data_addr %0 : $*SinglePayload, #SinglePayload.B!enumelt.1 %4 = unchecked_take_enum_data_addr %0 : $*SinglePayload, #SinglePayload.C!enumelt.1 return undef : $() } sil @project_empty_payloads_multi : $@convention(thin) (@in MultiPayload) -> () { entry(%0 : $*MultiPayload): %1 = init_enum_data_addr %0 : $*MultiPayload, #MultiPayload.C!enumelt.1 %2 = init_enum_data_addr %0 : $*MultiPayload, #MultiPayload.D!enumelt.1 %3 = init_enum_data_addr %0 : $*MultiPayload, #MultiPayload.E!enumelt.1 %4 = init_enum_data_addr %0 : $*MultiPayload, #MultiPayload.F!enumelt.1 %5 = unchecked_take_enum_data_addr %0 : $*MultiPayload, #MultiPayload.C!enumelt.1 %6 = unchecked_take_enum_data_addr %0 : $*MultiPayload, #MultiPayload.D!enumelt.1 %7 = unchecked_take_enum_data_addr %0 : $*MultiPayload, #MultiPayload.E!enumelt.1 %8 = unchecked_take_enum_data_addr %0 : $*MultiPayload, #MultiPayload.F!enumelt.1 return undef : $() }