Skip to content

Commit 46a7744

Browse files
authored
Merge pull request #1566 from swiftwasm/release/5.3
[pull] swiftwasm-release/5.3 from release/5.3
2 parents 5a196c7 + df007a4 commit 46a7744

11 files changed

+57
-49
lines changed

lib/IRGen/GenClass.cpp

+15-7
Original file line numberDiff line numberDiff line change
@@ -1257,7 +1257,7 @@ namespace {
12571257
// };
12581258

12591259
assert(fields.getNextOffsetFromGlobal() == size);
1260-
return buildGlobalVariable(fields, "_CATEGORY_");
1260+
return buildGlobalVariable(fields, "_CATEGORY_", /*const*/ true);
12611261
}
12621262

12631263
llvm::Constant *emitProtocol() {
@@ -1309,7 +1309,7 @@ namespace {
13091309
// };
13101310

13111311
assert(fields.getNextOffsetFromGlobal() == size);
1312-
return buildGlobalVariable(fields, "_PROTOCOL_");
1312+
return buildGlobalVariable(fields, "_PROTOCOL_", /*const*/ true);
13131313
}
13141314

13151315
void emitRODataFields(ConstantStructBuilder &b,
@@ -1402,7 +1402,7 @@ namespace {
14021402
emitRODataFields(fields, forMeta, hasUpdater);
14031403

14041404
auto dataSuffix = forMeta ? "_METACLASS_DATA_" : "_DATA_";
1405-
return buildGlobalVariable(fields, dataSuffix);
1405+
return buildGlobalVariable(fields, dataSuffix, /*const*/ true);
14061406
}
14071407

14081408
private:
@@ -1636,7 +1636,8 @@ namespace {
16361636
return null();
16371637
}
16381638

1639-
return buildGlobalVariable(array, "_PROTOCOL_METHOD_TYPES_");
1639+
return buildGlobalVariable(array, "_PROTOCOL_METHOD_TYPES_",
1640+
/*const*/ true);
16401641
}
16411642

16421643
void buildExtMethodTypes(ConstantArrayBuilder &array,
@@ -1661,6 +1662,7 @@ namespace {
16611662
llvm::Constant *buildMethodList(ArrayRef<MethodDescriptor> methods,
16621663
StringRef name) {
16631664
return buildOptionalList(methods, 3 * IGM.getPointerSize(), name,
1665+
/*isConst*/ false,
16641666
[&](ConstantArrayBuilder &descriptors,
16651667
MethodDescriptor descriptor) {
16661668
buildMethod(descriptors, descriptor);
@@ -1686,6 +1688,7 @@ namespace {
16861688
chooseNamePrefix("_PROTOCOLS_",
16871689
"_CATEGORY_PROTOCOLS_",
16881690
"_PROTOCOL_PROTOCOLS_"),
1691+
/*isConst*/ true,
16891692
[&](ConstantArrayBuilder &descriptors,
16901693
ProtocolDecl *protocol) {
16911694
buildProtocol(descriptors, protocol);
@@ -1799,6 +1802,7 @@ namespace {
17991802
llvm::Constant *buildIvarList() {
18001803
Size eltSize = 3 * IGM.getPointerSize() + Size(8);
18011804
return buildOptionalList(Ivars, eltSize, "_IVARS_",
1805+
/*constant*/ true,
18021806
[&](ConstantArrayBuilder &descriptors,
18031807
VarDecl *ivar) {
18041808
buildIvar(descriptors, ivar);
@@ -1934,6 +1938,7 @@ namespace {
19341938
StringRef namePrefix) {
19351939
Size eltSize = 2 * IGM.getPointerSize();
19361940
return buildOptionalList(properties, eltSize, namePrefix,
1941+
/*constant*/ true,
19371942
[&](ConstantArrayBuilder &descriptors,
19381943
VarDecl *property) {
19391944
buildProperty(descriptors, property);
@@ -1952,6 +1957,7 @@ namespace {
19521957
llvm::Constant *buildOptionalList(const C &objects,
19531958
Size optionalEltSize,
19541959
StringRef nameBase,
1960+
bool isConst,
19551961
Fn &&buildElement) {
19561962
if (objects.empty())
19571963
return null();
@@ -1990,7 +1996,7 @@ namespace {
19901996

19911997
fields.fillPlaceholderWithInt(countPosition, countType, count);
19921998

1993-
return buildGlobalVariable(fields, nameBase);
1999+
return buildGlobalVariable(fields, nameBase, isConst);
19942000
}
19952001

19962002
/// Get the name of the class or protocol to mangle into the ObjC symbol
@@ -2010,7 +2016,8 @@ namespace {
20102016
/// Build a private global variable as a structure containing the
20112017
/// given fields.
20122018
template <class B>
2013-
llvm::Constant *buildGlobalVariable(B &fields, StringRef nameBase) {
2019+
llvm::Constant *buildGlobalVariable(B &fields, StringRef nameBase,
2020+
bool isConst) {
20142021
llvm::SmallString<64> nameBuffer;
20152022
auto var =
20162023
fields.finishAndCreateGlobal(Twine(nameBase)
@@ -2024,7 +2031,8 @@ namespace {
20242031

20252032
switch (IGM.TargetInfo.OutputObjectFormat) {
20262033
case llvm::Triple::MachO:
2027-
var->setSection("__DATA, __objc_const");
2034+
var->setSection(isConst ? "__DATA, __objc_const"
2035+
: "__DATA, __objc_data");
20282036
break;
20292037
case llvm::Triple::XCOFF:
20302038
case llvm::Triple::COFF:

test/IRGen/class_update_callback_with_fixed_layout.sil

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ sil_vtable SubclassOfClassWithResilientField {}
5151
// -- the update callback
5252
// CHECK-SAME: @"$s39class_update_callback_with_fixed_layout23ClassWithResilientFieldCMU"
5353

54-
// CHECK-SAME: }, section "__DATA, __objc_const", align 8
54+
// CHECK-SAME: }, section "__DATA, {{.*}}", align 8
5555

5656
// Class has static metadata:
5757
// CHECK-LABEL: @"$s39class_update_callback_with_fixed_layout23ClassWithResilientFieldCMf"

test/IRGen/class_update_callback_without_fixed_layout.sil

+1-1
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ sil_vtable SubclassOfClassWithResilientField {}
6363
// -- the update callback
6464
// CHECK-NEW-SAME: @"$s42class_update_callback_without_fixed_layout23ClassWithResilientFieldCMU{{(\.ptrauth)?}}"
6565

66-
// CHECK-SAME: }, section "__DATA, __objc_const"
66+
// CHECK-SAME: }, section "__DATA, {{.*}}"
6767

6868
// Class has static metadata:
6969
// CHECK-LABEL: @"$s42class_update_callback_without_fixed_layout23ClassWithResilientFieldCMf"

test/IRGen/objc_bridge.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ import Foundation
9696
// CHECK: i8* bitcast (void ([[OPAQUE:.*]]*, i8*)* @"$s11objc_bridge3BasCfETo" to i8*)
9797
// CHECK: }
9898
// CHECK: ]
99-
// CHECK: }, section "__DATA, __objc_const", align 8
99+
// CHECK: }, section "__DATA, {{.*}}", align 8
100100

101101
// CHECK: @_PROPERTIES__TtC11objc_bridge3Bas = internal constant { i32, i32, [5 x { i8*, i8* }] } {
102102

test/IRGen/objc_class_export.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
// CHECK-SAME: i8* null,
3535
// CHECK-SAME: i8* null,
3636
// CHECK-SAME: i8* null
37-
// CHECK-SAME: }, section "__DATA, __objc_const", align 8
37+
// CHECK-SAME: }, section "__DATA, {{.*}}", align 8
3838
// CHECK: @_DATA__TtC17objc_class_export3Foo = internal constant {{.*\*}} } {
3939
// CHECK-SAME: i32 128,
4040
// CHECK-SAME: i32 16,
@@ -47,7 +47,7 @@
4747
// CHECK-SAME: @_IVARS__TtC17objc_class_export3Foo,
4848
// CHECK-SAME: i8* null,
4949
// CHECK-SAME: _PROPERTIES__TtC17objc_class_export3Foo
50-
// CHECK-SAME: }, section "__DATA, __objc_const", align 8
50+
// CHECK-SAME: }, section "__DATA, {{.*}}", align 8
5151
// CHECK: @"$s17objc_class_export3FooCMf" = internal global <{{.*}} }> <{
5252
// CHECK-SAME: void ([[FOO]]*)* @"$s17objc_class_export3FooCfD",
5353
// CHECK-SAME: i8** @"$sBOWV",

test/IRGen/objc_extensions.swift

+8-8
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ import objc_extension_base
2727
// CHECK-SAME: @"_CATEGORY_CLASS_METHODS_Gizmo_$_objc_extensions",
2828
// CHECK-SAME: @"_CATEGORY_PROTOCOLS_Gizmo_$_objc_extensions",
2929
// CHECK-SAME: i8* null
30-
// CHECK-SAME: }, section "__DATA, __objc_const", align 8
30+
// CHECK-SAME: }, section "__DATA, {{.*}}", align 8
3131

3232
@objc protocol NewProtocol {
3333
func brandNewInstanceMethod()
@@ -67,7 +67,7 @@ extension Gizmo: NewProtocol {
6767
// CHECK: {{.*}} @"_CATEGORY_CLASS_METHODS_Gizmo_$_objc_extensions1",
6868
// CHECK: i8* null,
6969
// CHECK: i8* null
70-
// CHECK: }, section "__DATA, __objc_const", align 8
70+
// CHECK: }, section "__DATA, {{.*}}", align 8
7171

7272
extension Gizmo {
7373
@objc func brandSpankingNewInstanceMethod() {
@@ -92,7 +92,7 @@ class Hoozit : NSObject {
9292
// CHECK: i8* getelementptr inbounds ([8 x i8], [8 x i8]* [[STR:@.*]], i64 0, i64 0),
9393
// CHECK: i8* bitcast (void ([[OPAQUE:%.*]]*, i8*)* @"$s15objc_extensions6HoozitC7blibbleyyFTo" to i8*)
9494
// CHECK: }]
95-
// CHECK: }, section "__DATA, __objc_const", align 8
95+
// CHECK: }, section "__DATA, {{.*}}", align 8
9696

9797
// CHECK-LABEL: @"_CATEGORY_CLASS_METHODS__TtC15objc_extensions6Hoozit_$_objc_extensions" = internal constant
9898
// CHECK: i32 24,
@@ -102,7 +102,7 @@ class Hoozit : NSObject {
102102
// CHECK: i8* getelementptr inbounds ([8 x i8], [8 x i8]* [[STR]], i64 0, i64 0),
103103
// CHECK: i8* bitcast (void (i8*, i8*)* @"$s15objc_extensions6HoozitC7blobbleyyFZTo" to i8*)
104104
// CHECK: }]
105-
// CHECK: }, section "__DATA, __objc_const", align 8
105+
// CHECK: }, section "__DATA, {{.*}}", align 8
106106

107107
// CHECK-LABEL: @"_CATEGORY__TtC15objc_extensions6Hoozit_$_objc_extensions" = internal constant
108108
// CHECK: i8* getelementptr inbounds ([16 x i8], [16 x i8]* [[CATEGORY_NAME]], i64 0, i64 0),
@@ -111,7 +111,7 @@ class Hoozit : NSObject {
111111
// CHECK: {{.*}} @"_CATEGORY_CLASS_METHODS__TtC15objc_extensions6Hoozit_$_objc_extensions",
112112
// CHECK: i8* null,
113113
// CHECK: i8* null
114-
// CHECK: }, section "__DATA, __objc_const", align 8
114+
// CHECK: }, section "__DATA, {{.*}}", align 8
115115

116116
extension Hoozit {
117117
@objc func blibble() { }
@@ -127,7 +127,7 @@ class SwiftOnly { }
127127
// CHECK: i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"\01L_selector_data(wibble)", i64 0, i64 0),
128128
// CHECK: i8* getelementptr inbounds ([8 x i8], [8 x i8]* [[STR]], i64 0, i64 0),
129129
// CHECK: i8* bitcast (void (i8*, i8*)* @"$s15objc_extensions9SwiftOnlyC6wibbleyyFTo" to i8*)
130-
// CHECK: }] }, section "__DATA, __objc_const", align 8
130+
// CHECK: }] }, section "__DATA, {{.*}}", align 8
131131
extension SwiftOnly {
132132
@objc func wibble() { }
133133
}
@@ -157,7 +157,7 @@ extension NSObject {
157157
// CHECK-SAME: i8* getelementptr inbounds ([16 x i8], [16 x i8]* [[CATEGORY_NAME]], i64 0, i64 0),
158158
// CHECK-SAME: @"_CATEGORY_INSTANCE_METHODS__TtCC15objc_extensions5Outer5Inner_$_objc_extensions",
159159
// CHECK-SAME: i8* null
160-
// CHECK-SAME: }, section "__DATA, __objc_const", align 8
160+
// CHECK-SAME: }, section "__DATA, {{.*}}", align 8
161161

162162
class Outer : NSObject {
163163
class Inner : NSObject {}
@@ -175,7 +175,7 @@ class NSDogcow : NSObject {}
175175

176176
// CHECK: [[NAME:@.*]] = private unnamed_addr constant [5 x i8] c"woof\00"
177177
// CHECK: [[ATTR:@.*]] = private unnamed_addr constant [7 x i8] c"Tq,N,D\00"
178-
// CHECK: @"_CATEGORY_PROPERTIES__TtC15objc_extensions8NSDogcow_$_objc_extensions" = internal constant {{.*}} [[NAME]], {{.*}} [[ATTR]], {{.*}}, section "__DATA, __objc_const", align 8
178+
// CHECK: @"_CATEGORY_PROPERTIES__TtC15objc_extensions8NSDogcow_$_objc_extensions" = internal constant {{.*}} [[NAME]], {{.*}} [[ATTR]], {{.*}}, section "__DATA, {{.*}}", align 8
179179
extension NSDogcow {
180180
@NSManaged var woof: Int
181181
}

test/IRGen/objc_methods.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ class ObjcDestructible: NSObject {
7979
// CHECK-macosx: i8* bitcast (i8 (i8*, i8*, %4**)* @"$s12objc_methods3FooC4failyyKFTo" to i8*)
8080
// CHECK-ios: i8* bitcast (i1 (i8*, i8*, %4**)* @"$s12objc_methods3FooC4failyyKFTo" to i8*)
8181
// CHECK: }]
82-
// CHECK: }, section "__DATA, __objc_const", align 8
82+
// CHECK: }, section "__DATA, {{.*}}", align 8
8383
// CHECK: @_INSTANCE_METHODS__TtC12objc_methods16ObjcDestructible = internal constant { {{.*}}] } {
8484
// CHECK: i32 24,
8585
// CHECK: i32 2,
@@ -88,7 +88,7 @@ class ObjcDestructible: NSObject {
8888
// CHECK: i8* getelementptr inbounds ([8 x i8], [8 x i8]* [[NO_ARGS_SIGNATURE]], i64 0, i64 0),
8989
// CHECK: i8* bitcast (void (%6*, i8*)* @"$s12objc_methods16ObjcDestructibleCfETo" to i8*) }]
9090
// CHECK: }]
91-
// CHECK: }, section "__DATA, __objc_const", align 8
91+
// CHECK: }, section "__DATA, {{.*}}", align 8
9292
// CHECK: [[BLOCK_SIGNATURE_EXT_1:@.*]] = private unnamed_addr constant [18 x i8] c"v24@0:8@?<q@?q>16\00"
9393
// CHECK: [[BLOCK_SIGNATURE_EXT_2:@.*]] = private unnamed_addr constant [19 x i8] c"v24@0:8@?<q@?qq>16\00"
9494
// CHECK: [[STRING_SIGNATURE_EXT:@.*]] = private unnamed_addr constant [31 x i8] c"@\22NSString\2224@0:8@\22NSString\2216\00"

test/IRGen/objc_properties.swift

+12-12
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ class SomeWrapperTests {
112112
// CHECK-NEW: i8* getelementptr inbounds ([11 x i8], [11 x i8]* [[SHARED_NAME]], i64 0, i64 0),
113113
// CHECK-NEW: i8* getelementptr inbounds ([5 x i8], [5 x i8]* [[SHARED_ATTRS]], i64 0, i64 0)
114114
// CHECK-NEW: }]
115-
// CHECK-NEW: }, section "__DATA, __objc_const", align 8
115+
// CHECK-NEW: }, section "__DATA, {{.*}}", align 8
116116

117117
// CHECK: @_METACLASS_DATA__TtC15objc_properties10SomeObject = internal constant { {{.*}} } {
118118
// CHECK-SAME: i32 {{[0-9]+}}, i32 {{[0-9]+}}, i32 {{[0-9]+}}, i32 {{[0-9]+}},
@@ -122,7 +122,7 @@ class SomeWrapperTests {
122122
// CHECK-SAME: i8* null, i8* null, i8* null,
123123
// CHECK-NEW-SAME: { {{.+}} }* @_CLASS_PROPERTIES__TtC15objc_properties10SomeObject
124124
// CHECK-OLD-SAME: i8* null
125-
// CHECK-SAME: }, section "__DATA, __objc_const", align 8
125+
// CHECK-SAME: }, section "__DATA, {{.*}}", align 8
126126

127127
// CHECK: [[GETTER_SIGNATURE:@.*]] = private unnamed_addr constant [8 x i8] c"@16@0:8\00"
128128
// CHECK: [[SETTER_SIGNATURE:@.*]] = private unnamed_addr constant [11 x i8] c"v24@0:8@16\00"
@@ -163,7 +163,7 @@ class SomeWrapperTests {
163163
// CHECK: i8* getelementptr inbounds ([8 x i8], [8 x i8]* [[GETTER_SIGNATURE]], i64 0, i64 0),
164164
// CHECK: @"$s15objc_properties10SomeObjectCACycfcTo{{(.ptrauth)?}}"
165165
// CHECK: }]
166-
// CHECK: }, section "__DATA, __objc_const", align 8
166+
// CHECK: }, section "__DATA, {{.*}}", align 8
167167

168168
// This appears earlier because it's also used in an ivar description.
169169
// CHECK: [[BAREIVAR_NAME:@.*]] = private unnamed_addr constant [9 x i8] c"bareIvar\00"
@@ -195,7 +195,7 @@ class SomeWrapperTests {
195195
// CHECK: i8* getelementptr inbounds ([7 x i8], [7 x i8]* [[WIBBLE_NAME]], i64 0, i64 0),
196196
// CHECK: i8* getelementptr inbounds ([50 x i8], [50 x i8]* [[WIBBLE_ATTRS]], i64 0, i64 0)
197197
// CHECK: }]
198-
// CHECK: }, section "__DATA, __objc_const", align 8
198+
// CHECK: }, section "__DATA, {{.*}}", align 8
199199

200200
// CHECK: @_DATA__TtC15objc_properties10SomeObject = internal constant { {{.+}} } {
201201
// CHECK: i32 {{[0-9]+}}, i32 {{[0-9]+}}, i32 {{[0-9]+}}, i32 {{[0-9]+}},
@@ -206,7 +206,7 @@ class SomeWrapperTests {
206206
// CHECK: { {{.+}} }* @_IVARS__TtC15objc_properties10SomeObject,
207207
// CHECK: i8* null,
208208
// CHECK: { {{.+}} }* @_PROPERTIES__TtC15objc_properties10SomeObject
209-
// CHECK: }, section "__DATA, __objc_const", align 8
209+
// CHECK: }, section "__DATA, {{.*}}", align 8
210210

211211
// CHECK: @"_CATEGORY_INSTANCE_METHODS__TtC15objc_properties10SomeObject_$_objc_properties" = internal constant { {{.*}}] } {
212212
// CHECK: i32 24,
@@ -220,7 +220,7 @@ class SomeWrapperTests {
220220
// CHECK: i8* getelementptr inbounds ([11 x i8], [11 x i8]* [[SETTER_SIGNATURE]], i64 0, i64 0),
221221
// CHECK: @"$s15objc_properties10SomeObjectC17extensionPropertyACvsTo{{(.ptrauth)?}}"
222222
// CHECK: }]
223-
// CHECK: }, section "__DATA, __objc_const", align 8
223+
// CHECK: }, section "__DATA, {{.*}}", align 8
224224

225225
// CHECK: [[EXTENSIONPROPERTY_NAME:@.*]] = private unnamed_addr constant [18 x i8] c"extensionProperty\00"
226226

@@ -231,7 +231,7 @@ class SomeWrapperTests {
231231
// CHECK: i8* getelementptr inbounds ([18 x i8], [18 x i8]* [[EXTENSIONPROPERTY_NAME]], i64 0, i64 0),
232232
// CHECK: i8* getelementptr inbounds ([42 x i8], [42 x i8]* [[READWRITE_ATTRS]], i64 0, i64 0)
233233
// CHECK: }]
234-
// CHECK: }, section "__DATA, __objc_const", align 8
234+
// CHECK: }, section "__DATA, {{.*}}", align 8
235235

236236
// CHECK-NEW: [[EXTENSIONCLASSPROPERTY_NAME:@.*]] = private unnamed_addr constant [19 x i8] c"extensionClassProp\00"
237237
// CHECK-NEW: [[EXTENSIONCLASSPROPERTY_ATTRS:@.*]] = private unnamed_addr constant [7 x i8] c"T#,N,R\00"
@@ -246,7 +246,7 @@ class SomeWrapperTests {
246246
// CHECK-NEW: }, {
247247
// CHECK-NEW: i8* getelementptr inbounds ([26 x i8], [26 x i8]* [[EXTENSIONSTATICPROPERTY_NAME]], i64 0, i64 0),
248248
// CHECK-NEW: i8* getelementptr inbounds ([5 x i8], [5 x i8]* [[SHARED_ATTRS]], i64 0, i64 0) }]
249-
// CHECK-NEW: }, section "__DATA, __objc_const", align 8
249+
// CHECK-NEW: }, section "__DATA, {{.*}}", align 8
250250

251251
// CHECK: @"_CATEGORY__TtC15objc_properties10SomeObject_$_objc_properties" = internal constant { {{.+}} } {
252252
// CHECK: i8* getelementptr inbounds ([{{.+}} x i8], [{{.+}} x i8]* {{@.+}}, i64 0, i64 0),
@@ -258,7 +258,7 @@ class SomeWrapperTests {
258258
// CHECK-NEW: { {{.+}} }* @"_CATEGORY_CLASS_PROPERTIES__TtC15objc_properties10SomeObject_$_objc_properties",
259259
// CHECK-OLD: i8* null,
260260
// CHECK: i32 60
261-
// CHECK: }, section "__DATA, __objc_const", align 8
261+
// CHECK: }, section "__DATA, {{.*}}", align 8
262262

263263

264264
// CHECK: @_INSTANCE_METHODS__TtC15objc_properties4Tree =
@@ -283,7 +283,7 @@ class SomeWrapperTests {
283283
// CHECK: i8* null,
284284
// CHECK-NEW: { {{.+}} }* @_PROTOCOL_CLASS_PROPERTIES__TtP15objc_properties5Proto_
285285
// CHECK-OLD: i8* null
286-
// CHECK: }, section "__DATA, __objc_const", align 8
286+
// CHECK: }, section "__DATA, {{.*}}", align 8
287287

288288

289289
// CHECK: [[PROTOCOLPROPERTY_NAME:@.+]] = private unnamed_addr constant [6 x i8] c"value\00"
@@ -296,7 +296,7 @@ class SomeWrapperTests {
296296
// CHECK: i8* getelementptr inbounds ([6 x i8], [6 x i8]* [[PROTOCOLPROPERTY_NAME]], i64 0, i64 0),
297297
// CHECK: i8* getelementptr inbounds ([7 x i8], [7 x i8]* [[PROTOCOLPROPERTY_ATTRS]], i64 0, i64 0)
298298
// CHECK: }]
299-
// CHECK: }, section "__DATA, __objc_const", align 8
299+
// CHECK: }, section "__DATA, {{.*}}", align 8
300300

301301
// CHECK-NEW: [[PROTOCOLCLASSPROPERTY_NAME:@.+]] = private unnamed_addr constant [15 x i8] c"sharedInstance\00"
302302
// CHECK-NEW: [[PROTOCOLCLASSPROPERTY_ATTRS:@.+]] = private unnamed_addr constant [7 x i8] c"T@,N,&\00"
@@ -308,4 +308,4 @@ class SomeWrapperTests {
308308
// CHECK-NEW: i8* getelementptr inbounds ([15 x i8], [15 x i8]* [[PROTOCOLCLASSPROPERTY_NAME]], i64 0, i64 0),
309309
// CHECK-NEW: i8* getelementptr inbounds ([7 x i8], [7 x i8]* [[PROTOCOLCLASSPROPERTY_ATTRS]], i64 0, i64 0)
310310
// CHECK-NEW: }]
311-
// CHECK-NEW: }, section "__DATA, __objc_const", align 8
311+
// CHECK-NEW: }, section "__DATA, {{.*}}", align 8

0 commit comments

Comments
 (0)