// RUN: %target-swift-frontend -emit-ir -primary-file %s | %FileCheck %s protocol P {} class A : P {} sil_vtable A {} // // Ensure that an "abstract" conformance that minimization // resolves as concrete doesn't mess up IRGen. Note that this test case // is only meaningful if type-checking actually resolves the conformance // as abstract, which it does today for both Swift and SIL inputs. // If it stops doing that, we can drop the special case in IRGen. sil @foo : $@convention(thin) (@guaranteed T) -> () { bb0(%0 : $T): %1 = alloc_stack $P %2 = init_existential_addr %1 : $*P, $T strong_retain %0 : $T store %0 to %2 : $*T destroy_addr %1 : $*P dealloc_stack %1 : $*P %3 = tuple () return %3 : $() } // CHECK: define {{.*}}void @foo(ptr %0, ptr %T) // CHECK: store ptr @"$s16class_constraint1ACAA1PAAWP",