1
1
// RUN: %clang_cc1 -triple x86_64-unknown-windows-msvc -fdeclspec -fobjc-runtime=ios -fobjc-exceptions -S -emit-llvm -o - %s | FileCheck -allow-deprecated-dag-overlap -check-prefix CHECK-IR %s
2
+ // RUN: %clang_cc1 -triple x86_64-unknown-windows-msvc -fdeclspec -fobjc-runtime=gnustep-2.0 -fobjc-exceptions -S -emit-llvm -o - %s | FileCheck -allow-deprecated-dag-overlap -check-prefix CHECK-NF %s
2
3
// RUN: %clang_cc1 -triple i686-windows-itanium -fms-extensions -fobjc-runtime=macosx -fdeclspec -fobjc-exceptions -S -emit-llvm -o - %s | FileCheck -allow-deprecated-dag-overlap -check-prefix CHECK-IR %s
3
4
// RUN: %clang_cc1 -triple i686-windows-itanium -fms-extensions -fobjc-runtime=objfw -fdeclspec -fobjc-exceptions -S -emit-llvm -o - %s | FileCheck -allow-deprecated-dag-overlap -check-prefix CHECK-FW %s
4
5
@@ -12,6 +13,8 @@ + (instancetype) new;
12
13
// CHECK-IR-DAG: @"OBJC_METACLASS_$_I" = external dllimport global %struct._class_t
13
14
// CHECK-IR-DAG: @"OBJC_CLASS_$_I" = external dllimport global %struct._class_t
14
15
16
+ // CHECK-NF-DAG: @"$_OBJC_CLASS_I" = external dllimport global ptr
17
+
15
18
__declspec (dllexport)
16
19
@interface J : I
17
20
@end
@@ -22,13 +25,18 @@ @interface J : I
22
25
// CHECK-FW-DAG: @_OBJC_METACLASS_J = dso_local dllexport global
23
26
// CHECK-FW-DAG: @_OBJC_CLASS_J = dso_local dllexport global
24
27
28
+ // CHECK-NF-DAG: @"$_OBJC_METACLASS_J" = internal global
29
+ // CHECK-NF-DAG: @"$_OBJC_CLASS_J" = dllexport global
30
+
25
31
@implementation J {
26
32
id _ivar;
27
33
}
28
34
@end
29
35
30
36
// CHECK-IR-DAG: @"OBJC_IVAR_$_J._ivar" = global i32
31
37
38
+ // CHECK-NF-DAG: @"__objc_ivar_offset_J._ivar.\01" = hidden global i32
39
+
32
40
@interface K : J
33
41
@end
34
42
@@ -38,13 +46,18 @@ @interface K : J
38
46
// CHECK-FW-DAG: @_OBJC_METACLASS_K = dso_local global
39
47
// CHECK-FW-DAG: @_OBJC_CLASS_K = dso_local global
40
48
49
+ // CHECK-NF-DAG: @"$_OBJC_METACLASS_K" = internal global
50
+ // CHECK-NF-DAG: @"$_OBJC_CLASS_K" = global
51
+
41
52
@implementation K {
42
53
id _ivar;
43
54
}
44
55
@end
45
56
46
57
// CHECK-IR-DAG: @"OBJC_IVAR_$_K._ivar" = global i32
47
58
59
+ // CHECK-NF-DAG: @"__objc_ivar_offset_K._ivar.\01" = hidden global i32
60
+
48
61
__declspec (dllexport)
49
62
@interface L : K
50
63
@end
@@ -55,6 +68,9 @@ @interface L : K
55
68
// CHECK-FW-DAG: @_OBJC_METACLASS_L = dso_local dllexport global
56
69
// CHECK-FW-DAG: @_OBJC_CLASS_L = dso_local dllexport global
57
70
71
+ // CHECK-NF-DAG: @"$_OBJC_METACLASS_L" = internal global
72
+ // CHECK-NF-DAG: @"$_OBJC_CLASS_L" = dllexport global
73
+
58
74
@implementation L {
59
75
id _none;
60
76
@@ -78,6 +94,12 @@ @implementation L {
78
94
// CHECK-IR-DAG: @"OBJC_IVAR_$_L._package" = global i32
79
95
// CHECK-IR-DAG: @"OBJC_IVAR_$_L._private" = global i32
80
96
97
+ // CHECK-NF-DAG: @"__objc_ivar_offset_L._none.\01" = hidden global i32
98
+ // CHECK-NF-DAG: @"__objc_ivar_offset_L._public.\01" = dso_local dllexport global i32
99
+ // CHECK-NF-DAG: @"__objc_ivar_offset_L._protected.\01" = dso_local dllexport global i32
100
+ // CHECK-NF-DAG: @"__objc_ivar_offset_L._package.\01" = hidden global i32
101
+ // CHECK-NF-DAG: @"__objc_ivar_offset_L._private.\01" = hidden global i32
102
+
81
103
__declspec (dllimport)
82
104
@interface M : I {
83
105
@public
@@ -89,6 +111,9 @@ @interface M : I {
89
111
90
112
// CHECK-IR-DAG: @"OBJC_IVAR_$_M._ivar" = external dllimport global i32
91
113
114
+ // CHECK-NF-DAG: @"$_OBJC_REF_CLASS_M" = external dllimport global ptr
115
+ // CHECK-NF-DAG: @"__objc_ivar_offset_M._ivar.\01" = external global i32
116
+
92
117
__declspec (dllexport)
93
118
__attribute__((__objc_exception__))
94
119
@interface N : I
@@ -97,6 +122,8 @@ @interface N : I
97
122
// CHECK-FW-DAG: @_OBJC_METACLASS_N = dso_local dllexport global
98
123
// CHECK-FW-DAG: @_OBJC_CLASS_N = dso_local dllexport global
99
124
125
+ // CHECK-NF-DAG: @"$_OBJC_CLASS_N" = dllexport global
126
+
100
127
@implementation N : I
101
128
@end
102
129
@@ -124,6 +151,8 @@ id f(Q *q) {
124
151
125
152
// CHECK-IR-DAG: @"OBJC_IVAR_$_M._ivar" = external dllimport global i32
126
153
154
+ // CHECK-NF-DAG: @"__objc_ivar_offset_M._ivar.\01" = external global i32
155
+
127
156
int g (void ) {
128
157
@autoreleasepool {
129
158
M *mi = [M new ];
0 commit comments