1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
// RUN: %empty-directory(%t)
// RUN: %target-swift-frontend -parse-sil -emit-sib -parse-as-library -parse-stdlib -module-name vtable -o %t/vtable.sib %s
// RUN: %target-sil-opt %t/vtable.sib -o - -emit-sorted-sil | %FileCheck %s
sil_stage canonical
import Builtin
public class Base {
func m1()
func m2()
}
public class Derived : Base {
override func m2()
func m3()
}
sil hidden_external [serialized] @$s1x4BaseC2m1yyF : $@convention(method) (@guaranteed Base) -> ()
sil hidden_external [serialized] @$s1x4BaseC2m2yyF : $@convention(method) (@guaranteed Base) -> ()
sil hidden_external [serialized] @$s1x4BaseCfd : $@convention(method) (@guaranteed Base) -> @owned Builtin.NativeObject
sil hidden_external [serialized] @$s1x4BaseCfD : $@convention(method) (@owned Base) -> ()
sil hidden_external [serialized] @$s1x4BaseCACycfC : $@convention(method) (@thick Base.Type) -> @owned Base
sil hidden_external [serialized] @$s1x4BaseCACycfc : $@convention(method) (@owned Base) -> @owned Base
sil hidden_external [serialized] @$s1x7DerivedC2m2yyF : $@convention(method) (@guaranteed Derived) -> ()
sil hidden_external [serialized] @$s1x7DerivedC2m3yyF : $@convention(method) (@guaranteed Derived) -> ()
sil hidden_external [serialized] @$s1x7DerivedCfd : $@convention(method) (@guaranteed Derived) -> @owned Builtin.NativeObject
sil hidden_external [serialized] @$s1x7DerivedCfD : $@convention(method) (@owned Derived) -> ()
sil hidden_external [serialized] @$s1x7DerivedCACycfC : $@convention(method) (@thick Derived.Type) -> @owned Derived
sil hidden_external [serialized] @$s1x7DerivedCACycfc : $@convention(method) (@owned Derived) -> @owned Derived
sil_vtable Base {
#Base.m1: (Base) -> () -> () : @$s1x4BaseC2m1yyF
#Base.m2: (Base) -> () -> () : @$s1x4BaseC2m2yyF
#Base.init!initializer: (Base.Type) -> () -> Base : @$s1x4BaseCACycfc
#Base.deinit!deallocator: @$s1x4BaseCfD
}
// CHECK-LABEL: sil_vtable Base {
// CHECK-NEXT: #Base.m1: (Base) -> () -> () : @$s1x4BaseC2m1yyF
// CHECK-NEXT: #Base.m2: (Base) -> () -> () : @$s1x4BaseC2m2yyF
// CHECK-NEXT: #Base.init!initializer: (Base.Type) -> () -> Base : @$s1x4BaseCACycfc
// CHECK-NEXT: #Base.deinit!deallocator: @$s1x4BaseCfD
// CHECK-NEXT: }
sil_vtable Derived {
#Base.m1: (Base) -> () -> () : @$s1x4BaseC2m1yyF [inherited]
#Base.m2: (Base) -> () -> () : @$s1x7DerivedC2m2yyF [override]
#Base.init!initializer: (Base.Type) -> () -> Base : @$s1x7DerivedCACycfc [override]
#Derived.m3: (Derived) -> () -> () : @$s1x7DerivedC2m3yyF
#Derived.deinit!deallocator: @$s1x7DerivedCfD
}
// CHECK-LABEL: sil_vtable Derived {
// CHECK-NEXT: #Base.m1: (Base) -> () -> () : @$s1x4BaseC2m1yyF [inherited]
// CHECK-NEXT: #Base.m2: (Base) -> () -> () : @$s1x7DerivedC2m2yyF [override]
// CHECK-NEXT: #Base.init!initializer: (Base.Type) -> () -> Base : @$s1x7DerivedCACycfc [override]
// CHECK-NEXT: #Derived.m3: (Derived) -> () -> () : @$s1x7DerivedC2m3yyF
// CHECK-NEXT: #Derived.deinit!deallocator: @$s1x7DerivedCfD
// CHECK-NEXT: }
|