Skip to content

Commit 2c3c190

Browse files
committed
[Clang] Convert some tests to opaque pointers (NFC)
1 parent f3269a9 commit 2c3c190

7 files changed

+84
-90
lines changed

clang/test/CodeGenObjCXX/property-dot-reference.mm

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %clang_cc1 -no-opaque-pointers -triple x86_64-apple-darwin10 -emit-llvm -fexceptions -o - %s | FileCheck %s
1+
// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -emit-llvm -fexceptions -o - %s | FileCheck %s
22
// rdar://8409336
33

44
struct TFENode {
@@ -11,8 +11,8 @@ @interface TNodeIconAndNameCell
1111

1212
@implementation TNodeIconAndNameCell
1313
- (const TFENode&) node {
14-
// CHECK: call noundef nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) %struct.TFENode* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend
15-
// CHECK-NEXT: call void @_ZNK7TFENode6GetURLEv(%struct.TFENode* {{[^,]*}} %{{.*}})
14+
// CHECK: call noundef nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) ptr @objc_msgSend
15+
// CHECK-NEXT: call void @_ZNK7TFENode6GetURLEv(ptr {{[^,]*}} %{{.*}})
1616
self.node.GetURL();
1717
} // expected-warning {{non-void function does not return a value}}
1818
@end
@@ -27,12 +27,12 @@ @interface A
2727
- (const X&) target;
2828
@end
2929
void f1(A *a) {
30-
// CHECK: [[PRP:%.*]] = call noundef nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) %struct.X* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend
31-
// CHECK-NEXT:call void @_Z2f0RK1X(%struct.X* noundef nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) [[PRP]])
30+
// CHECK: [[PRP:%.*]] = call noundef nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) ptr @objc_msgSend
31+
// CHECK-NEXT:call void @_Z2f0RK1X(ptr noundef nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) [[PRP]])
3232
f0(a.target);
3333

34-
// CHECK: [[MSG:%.*]] = call noundef nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) %struct.X* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend
35-
// CHECK-NEXT:call void @_Z2f0RK1X(%struct.X* noundef nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) [[MSG]])
34+
// CHECK: [[MSG:%.*]] = call noundef nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) ptr @objc_msgSend
35+
// CHECK-NEXT:call void @_Z2f0RK1X(ptr noundef nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) [[MSG]])
3636
f0([a target]);
3737
}
3838

@@ -51,12 +51,12 @@ void test2() {
5151
void(obj.myGetter);
5252
}
5353
// CHECK-LABEL: define{{.*}} void @_Z5test2v()
54-
// CHECK: call noundef i32 bitcast
55-
// CHECK: call noundef double bitcast
56-
// CHECK: call noundef i32 bitcast
57-
// CHECK: call noundef double bitcast
58-
// CHECK: call noundef i32 bitcast
59-
// CHECK: call noundef double bitcast
54+
// CHECK: call noundef i32
55+
// CHECK: call noundef double
56+
// CHECK: call noundef i32
57+
// CHECK: call noundef double
58+
// CHECK: call noundef i32
59+
// CHECK: call noundef double
6060

6161
// PR8751
6262
int test3(Test2 *obj) { return obj.myProperty; }

clang/test/CodeGenObjCXX/property-lvalue-lambda.mm

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %clang_cc1 -no-opaque-pointers -no-enable-noundef-analysis -fblocks -disable-llvm-passes -triple x86_64-apple-darwin10 -std=c++17 -emit-llvm -o - %s | FileCheck %s
1+
// RUN: %clang_cc1 -no-enable-noundef-analysis -fblocks -disable-llvm-passes -triple x86_64-apple-darwin10 -std=c++17 -emit-llvm -o - %s | FileCheck %s
22

33
typedef void (^blk_t)();
44
typedef void (*fnptr_t)();
@@ -19,12 +19,12 @@ void t1(X *x) {
1919
// Check that we call lambda.operator blk_t(), and that we send that result to
2020
// the setter.
2121

22-
// CHECK: [[CALL:%.*]] = call void ()* @"_ZZ2t1P1XENK3$_0cvU13block_pointerFvvEEv"
23-
// CHECK: call void{{.*}}@objc_msgSend{{.*}}({{.*}} void ()* [[CALL]])
22+
// CHECK: [[CALL:%.*]] = call ptr @"_ZZ2t1P1XENK3$_0cvU13block_pointerFvvEEv"
23+
// CHECK: call void{{.*}}@objc_msgSend{{.*}}({{.*}} ptr [[CALL]])
2424
x.blk = [] {};
2525

26-
// CHECK: [[CALL2:%.*]] = call void ()* @"_ZZ2t1P1XENK3$_1cvPFvvEEv"
27-
// CHECK: call void{{.*}}@objc_msgSend{{.*}}({{.*}} void ()* [[CALL2]])
26+
// CHECK: [[CALL2:%.*]] = call ptr @"_ZZ2t1P1XENK3$_1cvPFvvEEv"
27+
// CHECK: call void{{.*}}@objc_msgSend{{.*}}({{.*}} ptr [[CALL2]])
2828
x.fnptr = [] {};
2929
}
3030

@@ -35,13 +35,13 @@ void t2(X *x) {
3535

3636
// [x setBlk: operator+([x blk], [] {})]
3737

38-
// CHECK: call void{{.*}}@objc_msgSend{{.*}}
39-
// CHECK: [[PLUS:%.*]] = call void ()* @"_ZplIZ2t2P1XE3$_0EU13block_pointerFvvES4_T_"
38+
// CHECK: call ptr{{.*}}@objc_msgSend{{.*}}
39+
// CHECK: [[PLUS:%.*]] = call ptr @"_ZplIZ2t2P1XE3$_0EU13block_pointerFvvES4_T_"
4040
// CHECK: call void{{.*}}@objc_msgSend{{.*}}({{.*}} [[PLUS]])
4141
x.blk += [] {};
4242

43-
// CHECK: call void{{.*}}@objc_msgSend{{.*}}
44-
// CHECK: [[PLUS:%.*]] = call void ()* @"_ZplIZ2t2P1XE3$_1EPFvvES4_T_"
43+
// CHECK: call ptr{{.*}}@objc_msgSend{{.*}}
44+
// CHECK: [[PLUS:%.*]] = call ptr @"_ZplIZ2t2P1XE3$_1EPFvvES4_T_"
4545
// CHECK: call void{{.*}}@objc_msgSend{{.*}}({{.*}} [[PLUS]])
4646
x.fnptr += [] {};
4747
}

clang/test/CodeGenObjCXX/property-object-conditional-exp.mm

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %clang_cc1 -no-opaque-pointers -triple x86_64-apple-darwin10 -fobjc-runtime=macosx-fragile-10.5 -emit-llvm -o - %s | FileCheck %s
1+
// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fobjc-runtime=macosx-fragile-10.5 -emit-llvm -o - %s | FileCheck %s
22

33
struct CGRect {
44
char* origin;
@@ -22,12 +22,11 @@ - (void)bar {
2222
CGRect dataRect;
2323
CGRect virtualBounds;
2424

25-
// CHECK: [[SRC:%.*]] = call { i8*, i32 } bitcast (i8* (i8*, i8*, ...)* @objc_msgSend
26-
// CHECK-NEXT: bitcast
27-
// CHECK-NEXT:getelementptr inbounds { i8*, i32 }, { i8*, i32 }* [[SRC:%.*]]
25+
// CHECK: [[SRC:%.*]] = call { ptr, i32 } @objc_msgSend
26+
// CHECK-NEXT:getelementptr inbounds { ptr, i32 }, ptr [[SRC:%.*]]
2827
// CHECK-NEXT:extractvalue
2928
// CHECK-NEXT:store
30-
// CHECK-NEXT:getelementptr inbounds { i8*, i32 }, { i8*, i32 }* [[SRC:%.*]]
29+
// CHECK-NEXT:getelementptr inbounds { ptr, i32 }, ptr [[SRC:%.*]]
3130
// CHECK-NEXT:extractvalue
3231
// CHECK-NEXT:store
3332
dataRect = CGRectIsEmpty(virtualBounds) ? self.bounds : virtualBounds;

clang/test/CodeGenObjCXX/property-object-reference-1.mm

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %clang_cc1 -no-opaque-pointers -x objective-c++ %s -triple x86_64-apple-darwin10 -emit-llvm -o - | FileCheck %s
1+
// RUN: %clang_cc1 -x objective-c++ %s -triple x86_64-apple-darwin10 -emit-llvm -o - | FileCheck %s
22
// rdar://6137845
33

44
struct TCPPObject
@@ -24,8 +24,7 @@ @implementation MyDocument
2424

2525
@end
2626

27-
// CHECK: [[cppObjectaddr:%.*]] = alloca %struct.TCPPObject*, align 8
28-
// CHECK: store %struct.TCPPObject* [[cppObject:%.*]], %struct.TCPPObject** [[cppObjectaddr]], align 8
29-
// CHECK: [[THREE:%.*]] = load %struct.TCPPObject*, %struct.TCPPObject** [[cppObjectaddr]], align 8
30-
// CHECK: [[FOUR:%.*]] = bitcast %struct.TCPPObject* [[THREE]] to i8*
31-
// CHECK: call void @objc_copyStruct(i8* noundef [[TWO:%.*]], i8* noundef [[FOUR]], i64 noundef 256, i1 noundef zeroext true, i1 noundef zeroext false)
27+
// CHECK: [[cppObjectaddr:%cppObject.addr]] = alloca ptr, align 8
28+
// CHECK: store ptr [[cppObject:%.*]], ptr [[cppObjectaddr]], align 8
29+
// CHECK: [[THREE:%.*]] = load ptr, ptr [[cppObjectaddr]], align 8
30+
// CHECK: call void @objc_copyStruct(ptr noundef [[TWO:%.*]], ptr noundef [[THREE]], i64 noundef 256, i1 noundef zeroext true, i1 noundef zeroext false)

clang/test/CodeGenObjCXX/property-object-reference.mm

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %clang_cc1 -no-opaque-pointers %s -triple x86_64-apple-darwin10 -fobjc-runtime=macosx-fragile-10.5 -emit-llvm -o - | FileCheck %s
1+
// RUN: %clang_cc1 %s -triple x86_64-apple-darwin10 -fobjc-runtime=macosx-fragile-10.5 -emit-llvm -o - | FileCheck %s
22
// rdar://10188258
33

44
struct Foo {int i;};
@@ -24,12 +24,10 @@ -(void) test {
2424
- (void)setFooProperty : (Foo &) arg { };
2525
@end
2626

27-
// CHECK: [[T0:%.*]] = load {{%.*}} [[S0:%.*]]
28-
// CHECK: [[T2:%.*]] = bitcast {{%.*}} [[T0]] to i8*
29-
// CHECK: load i8*, i8** @OBJC_SELECTOR_REFERENCES_
27+
// CHECK: [[T0:%.*]] = load {{.*}} [[S0:%.*]]
28+
// CHECK: load ptr, ptr @OBJC_SELECTOR_REFERENCES_
3029
// CHECK: @objc_msgSend
31-
// CHECK: [[R0:%.*]] = load {{%.*}} [[U0:%.*]]
32-
// CHECK: [[R2:%.*]] = bitcast {{%.*}} [[R0]] to i8*
33-
// CHECK: load i8*, i8** @OBJC_SELECTOR_REFERENCES_
30+
// CHECK: [[R0:%.*]] = load {{.*}} [[U0:%.*]]
31+
// CHECK: load ptr, ptr @OBJC_SELECTOR_REFERENCES_
3432
// CHECK: @objc_msgSend
3533

clang/test/CodeGenObjCXX/property-objects.mm

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %clang_cc1 -no-opaque-pointers %s -triple=x86_64-apple-darwin10 -std=c++11 -emit-llvm -debug-info-kind=limited -o - | FileCheck %s
1+
// RUN: %clang_cc1 %s -triple=x86_64-apple-darwin10 -std=c++11 -emit-llvm -debug-info-kind=limited -o - | FileCheck %s
22

33
class S {
44
public:
@@ -32,7 +32,7 @@ @implementation I
3232
@synthesize frame;
3333

3434
// CHECK: define internal void @"\01-[I setPosition:]"
35-
// CHECK: call noundef nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) %class.S* @_ZN1SaSERKS_
35+
// CHECK: call noundef nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) ptr @_ZN1SaSERKS_
3636
// CHECK-NEXT: ret void
3737

3838
// Don't attach debug locations to the prologue instructions. These were
@@ -60,8 +60,8 @@ - (struct CGRect)extent {return bounds;}
6060
@end
6161

6262
// CHECK-LABEL: define{{.*}} i32 @main
63-
// CHECK: call void @_ZN1SC1ERKS_(%class.S* {{[^,]*}} [[AGGTMP:%[a-zA-Z0-9\.]+]], %class.S* noundef nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) {{%[a-zA-Z0-9\.]+}})
64-
// CHECK: call void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, %class.S*)*)(i8* noundef {{%[a-zA-Z0-9\.]+}}, i8* noundef {{%[a-zA-Z0-9\.]+}}, %class.S* noundef [[AGGTMP]])
63+
// CHECK: call void @_ZN1SC1ERKS_(ptr {{[^,]*}} [[AGGTMP:%[a-zA-Z0-9\.]+]], ptr noundef nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) {{%[a-zA-Z0-9\.]+}})
64+
// CHECK: call void @objc_msgSend(ptr noundef {{%[a-zA-Z0-9\.]+}}, ptr noundef {{%[a-zA-Z0-9\.]+}}, ptr noundef [[AGGTMP]])
6565
// CHECK-NEXT: ret i32 0
6666
int main() {
6767
I *i;
@@ -72,9 +72,9 @@ int main() {
7272

7373
// rdar://8379892
7474
// CHECK-LABEL: define{{.*}} void @_Z1fP1A
75-
// CHECK: call void @_ZN1XC1Ev(%struct.X* {{[^,]*}} [[LVTEMP:%[a-zA-Z0-9\.]+]])
76-
// CHECK: call void @_ZN1XC1ERKS_(%struct.X* {{[^,]*}} [[AGGTMP:%[a-zA-Z0-9\.]+]], %struct.X* noundef nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) [[LVTEMP]])
77-
// CHECK: call void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, %struct.X*)*)({{.*}} %struct.X* noundef [[AGGTMP]])
75+
// CHECK: call void @_ZN1XC1Ev(ptr {{[^,]*}} [[LVTEMP:%[a-zA-Z0-9\.]+]])
76+
// CHECK: call void @_ZN1XC1ERKS_(ptr {{[^,]*}} [[AGGTMP:%[a-zA-Z0-9\.]+]], ptr noundef nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) [[LVTEMP]])
77+
// CHECK: call void @objc_msgSend({{.*}} ptr noundef [[AGGTMP]])
7878
struct X {
7979
X();
8080
X(const X&);
@@ -116,40 +116,40 @@ void testB0(B *b) {
116116
void testB1(B *b) {
117117
b.b1 += { b_makeInt() };
118118
}
119-
// CHECK: define{{.*}} void @_Z6testB0P1B([[B:%.*]]*
120-
// CHECK: [[BVAR:%.*]] = alloca [[B]]*, align 8
119+
// CHECK: define{{.*}} void @_Z6testB0P1B(ptr
120+
// CHECK: [[BVAR:%.*]] = alloca ptr, align 8
121121
// CHECK: [[TEMP:%.*]] = alloca [[B0:%.*]], align 8
122-
// CHECK: [[X:%.*]] = getelementptr inbounds [[B0]], [[B0]]* [[TEMP]], i32 0, i32 0
122+
// CHECK: [[X:%.*]] = getelementptr inbounds [[B0]], ptr [[TEMP]], i32 0, i32 0
123123
// CHECK-NEXT: [[T0:%.*]] = call noundef i32 @_Z9b_makeIntv()
124124
// CHECK-NEXT: [[T1:%.*]] = sext i32 [[T0]] to i64
125-
// CHECK-NEXT: store i64 [[T1]], i64* [[X]], align 8
126-
// CHECK: load [[B]]*, [[B]]** [[BVAR]]
125+
// CHECK-NEXT: store i64 [[T1]], ptr [[X]], align 8
126+
// CHECK: load ptr, ptr [[BVAR]]
127127
// CHECK-NOT: call
128128
// CHECK: call void @llvm.memcpy
129129
// CHECK-NOT: call
130-
// CHECK: call void bitcast {{.*}} @objc_msgSend
130+
// CHECK: call void @objc_msgSend
131131
// CHECK-NOT: call
132132
// CHECK: ret void
133133

134-
// CHECK: define{{.*}} void @_Z6testB1P1B([[B]]*
135-
// CHECK: [[BVAR:%.*]] = alloca [[B]]*, align 8
136-
// CHECK: load [[B]]*, [[B]]** [[BVAR]]
134+
// CHECK: define{{.*}} void @_Z6testB1P1B(ptr
135+
// CHECK: [[BVAR:%.*]] = alloca ptr, align 8
136+
// CHECK: load ptr, ptr [[BVAR]]
137137
// CHECK-NOT: call
138-
// CHECK: [[T0:%.*]] = call i64 bitcast {{.*}} @objc_msgSend
138+
// CHECK: [[T0:%.*]] = call i64 @objc_msgSend
139139
// CHECK-NOT: call
140140
// CHECK: store i64 [[T0]],
141141
// CHECK-NOT: call
142142
// CHECK: [[T0:%.*]] = call noundef i32 @_Z9b_makeIntv()
143143
// CHECK-NEXT: [[T1:%.*]] = sext i32 [[T0]] to i64
144-
// CHECK-NEXT: store i64 [[T1]], i64* {{.*}}, align 8
144+
// CHECK-NEXT: store i64 [[T1]], ptr {{.*}}, align 8
145145
// CHECK-NOT: call
146146
// CHECK: [[T0:%.*]] = call i64 @_Zpl2B1S_
147147
// CHECK-NOT: call
148148
// CHECK: store i64 [[T0]],
149149
// CHECK-NOT: call
150150
// CHECK: call void @llvm.memcpy
151151
// CHECK-NOT: call
152-
// CHECK: call void bitcast {{.*}} @objc_msgSend
152+
// CHECK: call void @objc_msgSend
153153
// CHECK-NOT: call
154154
// CHECK: ret void
155155

@@ -159,18 +159,18 @@ void testB2(B *b) {
159159
b.b2 = { B3() };
160160
}
161161

162-
// CHECK: define{{.*}} void @_Z6testB2P1B([[B]]*
163-
// CHECK: [[BVAR:%.*]] = alloca [[B]]*, align 8
162+
// CHECK: define{{.*}} void @_Z6testB2P1B(ptr
163+
// CHECK: [[BVAR:%.*]] = alloca ptr, align 8
164164
// CHECK: call void @llvm.dbg.declare(
165165
// CHECK: call void @_ZN2B3C1Ev(
166166
// CHECK-NEXT: [[T0:%.*]] = call i64 @_ZN2B3cv2B1Ev(
167167
// CHECK-NOT: call
168168
// CHECK: store i64 [[T0]],
169-
// CHECK: load [[B]]*, [[B]]** [[BVAR]]
169+
// CHECK: load ptr, ptr [[BVAR]]
170170
// CHECK-NOT: call
171171
// CHECK: call void @llvm.memcpy
172172
// CHECK-NOT: call
173-
// CHECK: call void bitcast {{.*}} @objc_msgSend
173+
// CHECK: call void @objc_msgSend
174174
// CHECK-NOT: call
175175
// CHECK: ret void
176176

@@ -191,24 +191,24 @@ void testC0(C *c) {
191191
c.c0 = c_helper;
192192
c.c0 = &c_helper;
193193
}
194-
// CHECK: define{{.*}} void @_Z6testC0P1C([[C:%.*]]*
195-
// CHECK: [[CVAR:%.*]] = alloca [[C]]*, align 8
196-
// CHECK: load [[C]]*, [[C]]** [[CVAR]]
194+
// CHECK: define{{.*}} void @_Z6testC0P1C(ptr
195+
// CHECK: [[CVAR:%.*]] = alloca ptr, align 8
196+
// CHECK: load ptr, ptr [[CVAR]]
197197
// CHECK-NOT: call
198-
// CHECK: call void bitcast {{.*}} @objc_msgSend {{.*}} @_Z8c_helperv
198+
// CHECK: call void @objc_msgSend({{.*}} @_Z8c_helperv
199199
// CHECK-NOT: call
200-
// CHECK: call void bitcast {{.*}} @objc_msgSend {{.*}} @_Z8c_helperv
200+
// CHECK: call void @objc_msgSend({{.*}} @_Z8c_helperv
201201
// CHECK-NOT: call
202202
// CHECK: ret void
203203

204204
void testC1(C *c) {
205205
c.c1 += c_helper;
206206
}
207-
// CHECK: define{{.*}} void @_Z6testC1P1C([[C]]*
208-
// CHECK: [[CVAR:%.*]] = alloca [[C]]*, align 8
209-
// CHECK: load [[C]]*, [[C]]** [[CVAR]]
207+
// CHECK: define{{.*}} void @_Z6testC1P1C(ptr
208+
// CHECK: [[CVAR:%.*]] = alloca ptr, align 8
209+
// CHECK: load ptr, ptr [[CVAR]]
210210
// CHECK-NOT: call
211-
// CHECK: [[T0:%.*]] = call i32 bitcast {{.*}} @objc_msgSend
211+
// CHECK: [[T0:%.*]] = call i32 @objc_msgSend
212212
// CHECK-NOT: call
213213
// CHECK: store i32 [[T0]],
214214
// CHECK-NOT: call
@@ -218,6 +218,6 @@ void testC1(C *c) {
218218
// CHECK-NOT: call
219219
// CHECK: call void @llvm.memcpy
220220
// CHECK-NOT: call
221-
// CHECK: call void bitcast {{.*}} @objc_msgSend
221+
// CHECK: call void @objc_msgSend
222222
// CHECK-NOT: call
223223
// CHECK: ret void

clang/test/CodeGenObjCXX/property-reference.mm

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %clang_cc1 -no-opaque-pointers %s -triple x86_64-apple-darwin10 -fobjc-runtime=macosx-fragile-10.5 -emit-llvm -o - | FileCheck %s
1+
// RUN: %clang_cc1 %s -triple x86_64-apple-darwin10 -fobjc-runtime=macosx-fragile-10.5 -emit-llvm -o - | FileCheck %s
22
// rdar://9208606
33

44
struct MyStruct {
@@ -26,8 +26,8 @@ void test0() {
2626
const MyStruct& currentMyStruct = myClass.foo;
2727
}
2828

29-
// CHECK: [[C:%.*]] = call noundef nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) %struct.MyStruct* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend
30-
// CHECK: store %struct.MyStruct* [[C]], %struct.MyStruct** [[D:%.*]]
29+
// CHECK: [[C:%.*]] = call noundef nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) ptr @objc_msgSend
30+
// CHECK: store ptr [[C]], ptr [[D:%.*]]
3131

3232
namespace test1 {
3333
struct A { A(); A(const A&); A&operator=(const A&); ~A(); };
@@ -40,16 +40,14 @@ @interface Test1 {
4040
@implementation Test1
4141
@synthesize prop1 = ivar;
4242
@end
43-
// CHECK: define internal noundef nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) [[A:%.*]]* @"\01-[Test1 prop1]"(
44-
// CHECK: [[SELF:%.*]] = alloca [[TEST1:%.*]]*, align 8
45-
// CHECK: [[T0:%.*]] = load [[TEST1]]*, [[TEST1]]** [[SELF]]
46-
// CHECK-NEXT: [[T1:%.*]] = bitcast [[TEST1]]* [[T0]] to i8*
47-
// CHECK-NEXT: [[T2:%.*]] = getelementptr inbounds i8, i8* [[T1]], i64 0
48-
// CHECK-NEXT: [[T3:%.*]] = bitcast i8* [[T2]] to [[A]]*
49-
// CHECK-NEXT: ret [[A]]* [[T3]]
43+
// CHECK: define internal noundef nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) ptr @"\01-[Test1 prop1]"(
44+
// CHECK: [[SELF:%.*]] = alloca ptr, align 8
45+
// CHECK: [[T0:%.*]] = load ptr, ptr [[SELF]]
46+
// CHECK-NEXT: [[T2:%.*]] = getelementptr inbounds i8, ptr [[T0]], i64 0
47+
// CHECK-NEXT: ret ptr [[T2]]
5048

5149
// CHECK: define internal void @"\01-[Test1 setProp1:]"(
52-
// CHECK: call noundef nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) [[A]]* @_ZN5test11AaSERKS0_(
50+
// CHECK: call noundef nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) ptr @_ZN5test11AaSERKS0_(
5351
// CHECK-NEXT: ret void
5452

5553
// rdar://problem/10497174
@@ -67,11 +65,11 @@ @interface Test2
6765
// CHECK-LABEL: define weak_odr void @_Z5test2IiEvP5Test2(
6866
// CHECK: [[X:%.*]] = alloca i32,
6967
// CHECK: @objc_msgSend
70-
// CHECK: store i32 {{%.*}}, i32* [[X]],
71-
// CHECK: load i32, i32* [[X]],
68+
// CHECK: store i32 {{%.*}}, ptr [[X]],
69+
// CHECK: load i32, ptr [[X]],
7270
// CHECK: @objc_msgSend
7371
// CHECK: @objc_msgSend
74-
// CHECK: load i32, i32* [[X]],
72+
// CHECK: load i32, ptr [[X]],
7573
// CHECK-NEXT: add nsw
7674
// CHECK: @objc_msgSend
7775
// CHECK-NEXT: ret void
@@ -86,11 +84,11 @@ @interface Test2
8684
// CHECK-LABEL: define weak_odr void @_Z5test3IiEvP5Test2(
8785
// CHECK: [[X:%.*]] = alloca i32,
8886
// CHECK: @objc_msgSend
89-
// CHECK: store i32 {{%.*}}, i32* [[X]],
90-
// CHECK: load i32, i32* [[X]],
87+
// CHECK: store i32 {{%.*}}, ptr [[X]],
88+
// CHECK: load i32, ptr [[X]],
9189
// CHECK: @objc_msgSend
9290
// CHECK: @objc_msgSend
93-
// CHECK: load i32, i32* [[X]],
91+
// CHECK: load i32, ptr [[X]],
9492
// CHECK-NEXT: add nsw
9593
// CHECK: @objc_msgSend
9694
// CHECK-NEXT: ret void

0 commit comments

Comments
 (0)