@@ -25,16 +25,24 @@ class Foo: Fooable {
25
25
@IBAction func garply( _: AnyObject ? ) { }
26
26
@objc func block( _: ( Int ) -> Int ) { }
27
27
@objc func block2( _: ( Int , Int ) -> Int ) { }
28
-
28
+
29
29
@objc func takesString( _ x: String ) -> String { return x }
30
30
@objc func takesArray( _ x: [ AnyObject ] ) -> [ AnyObject ] { return x }
31
31
@objc func takesDict( _ x: [ NSObject : AnyObject ] ) -> [ NSObject : AnyObject ] { return x }
32
32
@objc func takesSet( _ x: Set < NSObject > ) -> Set < NSObject > { return x }
33
-
33
+
34
34
@objc func fail( ) throws { }
35
35
}
36
36
37
- // CHECK: [[BAZ_SIGNATURE:@.*]] = private unnamed_addr constant [8 x i8] c"v16@0:8\00"
37
+ class ObjcDestructible : NSObject {
38
+ var object : NSObject
39
+
40
+ init ( object: NSObject ) {
41
+ self . object = object
42
+ }
43
+ }
44
+
45
+ // CHECK: [[IMPLICIT_PARAMS_SIGNATURE:@.*]] = private unnamed_addr constant [8 x i8] c"v16@0:8\00"
38
46
// CHECK: [[GARPLY_SIGNATURE:@.*]] = private unnamed_addr constant [11 x i8] c"v24@0:8@16\00"
39
47
// CHECK: [[BLOCK_SIGNATURE_TRAD:@.*]] = private unnamed_addr constant [12 x i8] c"v24@0:8@?16\00"
40
48
// CHECK-macosx: [[FAIL_SIGNATURE:@.*]] = private unnamed_addr constant [12 x i8] c"c24@0:8^@16\00"
@@ -45,7 +53,7 @@ class Foo: Fooable {
45
53
// CHECK: i32 9,
46
54
// CHECK: [9 x { i8*, i8*, i8* }] [{
47
55
// CHECK: i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"\01L_selector_data(baz)", i64 0, i64 0),
48
- // CHECK: i8* getelementptr inbounds ([8 x i8], [8 x i8]* [[BAZ_SIGNATURE ]], i64 0, i64 0),
56
+ // CHECK: i8* getelementptr inbounds ([8 x i8], [8 x i8]* [[IMPLICIT_PARAMS_SIGNATURE ]], i64 0, i64 0),
49
57
// CHECK: i8* bitcast (void (i8*, i8*)* @"$S12objc_methods3FooC3bazyyFTo" to i8*)
50
58
// CHECK: }, {
51
59
// CHECK: i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"\01L_selector_data(garply:)", i64 0, i64 0),
@@ -66,6 +74,15 @@ class Foo: Fooable {
66
74
// CHECK-ios: i8* bitcast (i1 (i8*, i8*, %4**)* @"$S12objc_methods3FooC4failyyKFTo" to i8*)
67
75
// CHECK: }]
68
76
// CHECK: }, section "__DATA, __objc_const", align 8
77
+ // CHECK: @_INSTANCE_METHODS__TtC12objc_methods16ObjcDestructible = private constant { {{.*}}] } {
78
+ // CHECK: i32 24,
79
+ // CHECK: i32 2,
80
+ // CHECK: [2 x { i8*, i8*, i8* }] [{
81
+ // CHECK: i8* getelementptr inbounds ([14 x i8], [14 x i8]* @"\01L_selector_data(.cxx_destruct)", i64 0, i64 0),
82
+ // CHECK: i8* getelementptr inbounds ([8 x i8], [8 x i8]* [[IMPLICIT_PARAMS_SIGNATURE]], i64 0, i64 0),
83
+ // CHECK: i8* bitcast (void (%6*, i8*)* @"$S12objc_methods16ObjcDestructibleCfETo" to i8*) }]
84
+ // CHECK: }]
85
+ // CHECK: }, section "__DATA, __objc_const", align 8
69
86
// CHECK: [[BLOCK_SIGNATURE_EXT_1:@.*]] = private unnamed_addr constant [18 x i8] c"v24@0:8@?<q@?q>16\00"
70
87
// CHECK: [[BLOCK_SIGNATURE_EXT_2:@.*]] = private unnamed_addr constant [19 x i8] c"v24@0:8@?<q@?qq>16\00"
71
88
// CHECK: [[STRING_SIGNATURE_EXT:@.*]] = private unnamed_addr constant [31 x i8] c"@\22NSString\2224@0:8@\22NSString\2216\00"
0 commit comments