mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
27 lines
882 B
Plaintext
27 lines
882 B
Plaintext
// RUN: %target-swift-frontend -emit-ir -primary-file %s | %FileCheck %s
|
|
|
|
protocol P {}
|
|
class A : P {}
|
|
|
|
sil_vtable A {}
|
|
|
|
// <rdar://25695389>
|
|
// 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) <T where T : A, T : P> (@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",
|