diff --git a/clang/test/CodeGenObjCXX/property-dot-reference.mm b/clang/test/CodeGenObjCXX/property-dot-reference.mm index 126676d4f0346..9fb35858219f8 100644 --- a/clang/test/CodeGenObjCXX/property-dot-reference.mm +++ b/clang/test/CodeGenObjCXX/property-dot-reference.mm @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -no-opaque-pointers -triple x86_64-apple-darwin10 -emit-llvm -fexceptions -o - %s | FileCheck %s +// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -emit-llvm -fexceptions -o - %s | FileCheck %s // rdar://8409336 struct TFENode { @@ -11,8 +11,8 @@ @interface TNodeIconAndNameCell @implementation TNodeIconAndNameCell - (const TFENode&) node { -// CHECK: call noundef nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) %struct.TFENode* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend -// CHECK-NEXT: call void @_ZNK7TFENode6GetURLEv(%struct.TFENode* {{[^,]*}} %{{.*}}) +// CHECK: call noundef nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) ptr @objc_msgSend +// CHECK-NEXT: call void @_ZNK7TFENode6GetURLEv(ptr {{[^,]*}} %{{.*}}) self.node.GetURL(); } // expected-warning {{non-void function does not return a value}} @end @@ -27,12 +27,12 @@ @interface A - (const X&) target; @end void f1(A *a) { -// CHECK: [[PRP:%.*]] = call noundef nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) %struct.X* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend -// CHECK-NEXT:call void @_Z2f0RK1X(%struct.X* noundef nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) [[PRP]]) +// CHECK: [[PRP:%.*]] = call noundef nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) ptr @objc_msgSend +// CHECK-NEXT:call void @_Z2f0RK1X(ptr noundef nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) [[PRP]]) f0(a.target); -// CHECK: [[MSG:%.*]] = call noundef nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) %struct.X* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend -// CHECK-NEXT:call void @_Z2f0RK1X(%struct.X* noundef nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) [[MSG]]) +// CHECK: [[MSG:%.*]] = call noundef nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) ptr @objc_msgSend +// CHECK-NEXT:call void @_Z2f0RK1X(ptr noundef nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) [[MSG]]) f0([a target]); } @@ -51,12 +51,12 @@ void test2() { void(obj.myGetter); } // CHECK-LABEL: define{{.*}} void @_Z5test2v() -// CHECK: call noundef i32 bitcast -// CHECK: call noundef double bitcast -// CHECK: call noundef i32 bitcast -// CHECK: call noundef double bitcast -// CHECK: call noundef i32 bitcast -// CHECK: call noundef double bitcast +// CHECK: call noundef i32 +// CHECK: call noundef double +// CHECK: call noundef i32 +// CHECK: call noundef double +// CHECK: call noundef i32 +// CHECK: call noundef double // PR8751 int test3(Test2 *obj) { return obj.myProperty; } diff --git a/clang/test/CodeGenObjCXX/property-lvalue-lambda.mm b/clang/test/CodeGenObjCXX/property-lvalue-lambda.mm index 1253ae6d45b04..ddb0bf5570926 100644 --- a/clang/test/CodeGenObjCXX/property-lvalue-lambda.mm +++ b/clang/test/CodeGenObjCXX/property-lvalue-lambda.mm @@ -1,4 +1,4 @@ -// 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 +// 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 typedef void (^blk_t)(); typedef void (*fnptr_t)(); @@ -19,12 +19,12 @@ void t1(X *x) { // Check that we call lambda.operator blk_t(), and that we send that result to // the setter. - // CHECK: [[CALL:%.*]] = call void ()* @"_ZZ2t1P1XENK3$_0cvU13block_pointerFvvEEv" - // CHECK: call void{{.*}}@objc_msgSend{{.*}}({{.*}} void ()* [[CALL]]) + // CHECK: [[CALL:%.*]] = call ptr @"_ZZ2t1P1XENK3$_0cvU13block_pointerFvvEEv" + // CHECK: call void{{.*}}@objc_msgSend{{.*}}({{.*}} ptr [[CALL]]) x.blk = [] {}; - // CHECK: [[CALL2:%.*]] = call void ()* @"_ZZ2t1P1XENK3$_1cvPFvvEEv" - // CHECK: call void{{.*}}@objc_msgSend{{.*}}({{.*}} void ()* [[CALL2]]) + // CHECK: [[CALL2:%.*]] = call ptr @"_ZZ2t1P1XENK3$_1cvPFvvEEv" + // CHECK: call void{{.*}}@objc_msgSend{{.*}}({{.*}} ptr [[CALL2]]) x.fnptr = [] {}; } @@ -35,13 +35,13 @@ void t2(X *x) { // [x setBlk: operator+([x blk], [] {})] - // CHECK: call void{{.*}}@objc_msgSend{{.*}} - // CHECK: [[PLUS:%.*]] = call void ()* @"_ZplIZ2t2P1XE3$_0EU13block_pointerFvvES4_T_" + // CHECK: call ptr{{.*}}@objc_msgSend{{.*}} + // CHECK: [[PLUS:%.*]] = call ptr @"_ZplIZ2t2P1XE3$_0EU13block_pointerFvvES4_T_" // CHECK: call void{{.*}}@objc_msgSend{{.*}}({{.*}} [[PLUS]]) x.blk += [] {}; - // CHECK: call void{{.*}}@objc_msgSend{{.*}} - // CHECK: [[PLUS:%.*]] = call void ()* @"_ZplIZ2t2P1XE3$_1EPFvvES4_T_" + // CHECK: call ptr{{.*}}@objc_msgSend{{.*}} + // CHECK: [[PLUS:%.*]] = call ptr @"_ZplIZ2t2P1XE3$_1EPFvvES4_T_" // CHECK: call void{{.*}}@objc_msgSend{{.*}}({{.*}} [[PLUS]]) x.fnptr += [] {}; } diff --git a/clang/test/CodeGenObjCXX/property-object-conditional-exp.mm b/clang/test/CodeGenObjCXX/property-object-conditional-exp.mm index 3fb75d9a3e41e..892f46f5733a2 100644 --- a/clang/test/CodeGenObjCXX/property-object-conditional-exp.mm +++ b/clang/test/CodeGenObjCXX/property-object-conditional-exp.mm @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -no-opaque-pointers -triple x86_64-apple-darwin10 -fobjc-runtime=macosx-fragile-10.5 -emit-llvm -o - %s | FileCheck %s +// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fobjc-runtime=macosx-fragile-10.5 -emit-llvm -o - %s | FileCheck %s struct CGRect { char* origin; @@ -22,12 +22,11 @@ - (void)bar { CGRect dataRect; CGRect virtualBounds; -// CHECK: [[SRC:%.*]] = call { i8*, i32 } bitcast (i8* (i8*, i8*, ...)* @objc_msgSend -// CHECK-NEXT: bitcast -// CHECK-NEXT:getelementptr inbounds { i8*, i32 }, { i8*, i32 }* [[SRC:%.*]] +// CHECK: [[SRC:%.*]] = call { ptr, i32 } @objc_msgSend +// CHECK-NEXT:getelementptr inbounds { ptr, i32 }, ptr [[SRC:%.*]] // CHECK-NEXT:extractvalue // CHECK-NEXT:store -// CHECK-NEXT:getelementptr inbounds { i8*, i32 }, { i8*, i32 }* [[SRC:%.*]] +// CHECK-NEXT:getelementptr inbounds { ptr, i32 }, ptr [[SRC:%.*]] // CHECK-NEXT:extractvalue // CHECK-NEXT:store dataRect = CGRectIsEmpty(virtualBounds) ? self.bounds : virtualBounds; diff --git a/clang/test/CodeGenObjCXX/property-object-reference-1.mm b/clang/test/CodeGenObjCXX/property-object-reference-1.mm index 7830b12f6e98c..ccbbec388362f 100644 --- a/clang/test/CodeGenObjCXX/property-object-reference-1.mm +++ b/clang/test/CodeGenObjCXX/property-object-reference-1.mm @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -no-opaque-pointers -x objective-c++ %s -triple x86_64-apple-darwin10 -emit-llvm -o - | FileCheck %s +// RUN: %clang_cc1 -x objective-c++ %s -triple x86_64-apple-darwin10 -emit-llvm -o - | FileCheck %s // rdar://6137845 struct TCPPObject @@ -24,8 +24,7 @@ @implementation MyDocument @end -// CHECK: [[cppObjectaddr:%.*]] = alloca %struct.TCPPObject*, align 8 -// CHECK: store %struct.TCPPObject* [[cppObject:%.*]], %struct.TCPPObject** [[cppObjectaddr]], align 8 -// CHECK: [[THREE:%.*]] = load %struct.TCPPObject*, %struct.TCPPObject** [[cppObjectaddr]], align 8 -// CHECK: [[FOUR:%.*]] = bitcast %struct.TCPPObject* [[THREE]] to i8* -// CHECK: call void @objc_copyStruct(i8* noundef [[TWO:%.*]], i8* noundef [[FOUR]], i64 noundef 256, i1 noundef zeroext true, i1 noundef zeroext false) +// CHECK: [[cppObjectaddr:%cppObject.addr]] = alloca ptr, align 8 +// CHECK: store ptr [[cppObject:%.*]], ptr [[cppObjectaddr]], align 8 +// CHECK: [[THREE:%.*]] = load ptr, ptr [[cppObjectaddr]], align 8 +// CHECK: call void @objc_copyStruct(ptr noundef [[TWO:%.*]], ptr noundef [[THREE]], i64 noundef 256, i1 noundef zeroext true, i1 noundef zeroext false) diff --git a/clang/test/CodeGenObjCXX/property-object-reference.mm b/clang/test/CodeGenObjCXX/property-object-reference.mm index 12449b867a863..f31371cf5231f 100644 --- a/clang/test/CodeGenObjCXX/property-object-reference.mm +++ b/clang/test/CodeGenObjCXX/property-object-reference.mm @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -no-opaque-pointers %s -triple x86_64-apple-darwin10 -fobjc-runtime=macosx-fragile-10.5 -emit-llvm -o - | FileCheck %s +// RUN: %clang_cc1 %s -triple x86_64-apple-darwin10 -fobjc-runtime=macosx-fragile-10.5 -emit-llvm -o - | FileCheck %s // rdar://10188258 struct Foo {int i;}; @@ -24,12 +24,10 @@ -(void) test { - (void)setFooProperty : (Foo &) arg { }; @end -// CHECK: [[T0:%.*]] = load {{%.*}} [[S0:%.*]] -// CHECK: [[T2:%.*]] = bitcast {{%.*}} [[T0]] to i8* -// CHECK: load i8*, i8** @OBJC_SELECTOR_REFERENCES_ +// CHECK: [[T0:%.*]] = load {{.*}} [[S0:%.*]] +// CHECK: load ptr, ptr @OBJC_SELECTOR_REFERENCES_ // CHECK: @objc_msgSend -// CHECK: [[R0:%.*]] = load {{%.*}} [[U0:%.*]] -// CHECK: [[R2:%.*]] = bitcast {{%.*}} [[R0]] to i8* -// CHECK: load i8*, i8** @OBJC_SELECTOR_REFERENCES_ +// CHECK: [[R0:%.*]] = load {{.*}} [[U0:%.*]] +// CHECK: load ptr, ptr @OBJC_SELECTOR_REFERENCES_ // CHECK: @objc_msgSend diff --git a/clang/test/CodeGenObjCXX/property-objects.mm b/clang/test/CodeGenObjCXX/property-objects.mm index 5c6e87796a559..5ef535f48a4ae 100644 --- a/clang/test/CodeGenObjCXX/property-objects.mm +++ b/clang/test/CodeGenObjCXX/property-objects.mm @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -no-opaque-pointers %s -triple=x86_64-apple-darwin10 -std=c++11 -emit-llvm -debug-info-kind=limited -o - | FileCheck %s +// RUN: %clang_cc1 %s -triple=x86_64-apple-darwin10 -std=c++11 -emit-llvm -debug-info-kind=limited -o - | FileCheck %s class S { public: @@ -32,7 +32,7 @@ @implementation I @synthesize frame; // CHECK: define internal void @"\01-[I setPosition:]" -// CHECK: call noundef nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) %class.S* @_ZN1SaSERKS_ +// CHECK: call noundef nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) ptr @_ZN1SaSERKS_ // CHECK-NEXT: ret void // Don't attach debug locations to the prologue instructions. These were @@ -60,8 +60,8 @@ - (struct CGRect)extent {return bounds;} @end // CHECK-LABEL: define{{.*}} i32 @main -// 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\.]+}}) -// 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]]) +// CHECK: call void @_ZN1SC1ERKS_(ptr {{[^,]*}} [[AGGTMP:%[a-zA-Z0-9\.]+]], ptr noundef nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) {{%[a-zA-Z0-9\.]+}}) +// CHECK: call void @objc_msgSend(ptr noundef {{%[a-zA-Z0-9\.]+}}, ptr noundef {{%[a-zA-Z0-9\.]+}}, ptr noundef [[AGGTMP]]) // CHECK-NEXT: ret i32 0 int main() { I *i; @@ -72,9 +72,9 @@ int main() { // rdar://8379892 // CHECK-LABEL: define{{.*}} void @_Z1fP1A -// CHECK: call void @_ZN1XC1Ev(%struct.X* {{[^,]*}} [[LVTEMP:%[a-zA-Z0-9\.]+]]) -// CHECK: call void @_ZN1XC1ERKS_(%struct.X* {{[^,]*}} [[AGGTMP:%[a-zA-Z0-9\.]+]], %struct.X* noundef nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) [[LVTEMP]]) -// CHECK: call void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, %struct.X*)*)({{.*}} %struct.X* noundef [[AGGTMP]]) +// CHECK: call void @_ZN1XC1Ev(ptr {{[^,]*}} [[LVTEMP:%[a-zA-Z0-9\.]+]]) +// CHECK: call void @_ZN1XC1ERKS_(ptr {{[^,]*}} [[AGGTMP:%[a-zA-Z0-9\.]+]], ptr noundef nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) [[LVTEMP]]) +// CHECK: call void @objc_msgSend({{.*}} ptr noundef [[AGGTMP]]) struct X { X(); X(const X&); @@ -116,32 +116,32 @@ void testB0(B *b) { void testB1(B *b) { b.b1 += { b_makeInt() }; } -// CHECK: define{{.*}} void @_Z6testB0P1B([[B:%.*]]* -// CHECK: [[BVAR:%.*]] = alloca [[B]]*, align 8 +// CHECK: define{{.*}} void @_Z6testB0P1B(ptr +// CHECK: [[BVAR:%.*]] = alloca ptr, align 8 // CHECK: [[TEMP:%.*]] = alloca [[B0:%.*]], align 8 -// CHECK: [[X:%.*]] = getelementptr inbounds [[B0]], [[B0]]* [[TEMP]], i32 0, i32 0 +// CHECK: [[X:%.*]] = getelementptr inbounds [[B0]], ptr [[TEMP]], i32 0, i32 0 // CHECK-NEXT: [[T0:%.*]] = call noundef i32 @_Z9b_makeIntv() // CHECK-NEXT: [[T1:%.*]] = sext i32 [[T0]] to i64 -// CHECK-NEXT: store i64 [[T1]], i64* [[X]], align 8 -// CHECK: load [[B]]*, [[B]]** [[BVAR]] +// CHECK-NEXT: store i64 [[T1]], ptr [[X]], align 8 +// CHECK: load ptr, ptr [[BVAR]] // CHECK-NOT: call // CHECK: call void @llvm.memcpy // CHECK-NOT: call -// CHECK: call void bitcast {{.*}} @objc_msgSend +// CHECK: call void @objc_msgSend // CHECK-NOT: call // CHECK: ret void -// CHECK: define{{.*}} void @_Z6testB1P1B([[B]]* -// CHECK: [[BVAR:%.*]] = alloca [[B]]*, align 8 -// CHECK: load [[B]]*, [[B]]** [[BVAR]] +// CHECK: define{{.*}} void @_Z6testB1P1B(ptr +// CHECK: [[BVAR:%.*]] = alloca ptr, align 8 +// CHECK: load ptr, ptr [[BVAR]] // CHECK-NOT: call -// CHECK: [[T0:%.*]] = call i64 bitcast {{.*}} @objc_msgSend +// CHECK: [[T0:%.*]] = call i64 @objc_msgSend // CHECK-NOT: call // CHECK: store i64 [[T0]], // CHECK-NOT: call // CHECK: [[T0:%.*]] = call noundef i32 @_Z9b_makeIntv() // CHECK-NEXT: [[T1:%.*]] = sext i32 [[T0]] to i64 -// CHECK-NEXT: store i64 [[T1]], i64* {{.*}}, align 8 +// CHECK-NEXT: store i64 [[T1]], ptr {{.*}}, align 8 // CHECK-NOT: call // CHECK: [[T0:%.*]] = call i64 @_Zpl2B1S_ // CHECK-NOT: call @@ -149,7 +149,7 @@ void testB1(B *b) { // CHECK-NOT: call // CHECK: call void @llvm.memcpy // CHECK-NOT: call -// CHECK: call void bitcast {{.*}} @objc_msgSend +// CHECK: call void @objc_msgSend // CHECK-NOT: call // CHECK: ret void @@ -159,18 +159,18 @@ void testB2(B *b) { b.b2 = { B3() }; } -// CHECK: define{{.*}} void @_Z6testB2P1B([[B]]* -// CHECK: [[BVAR:%.*]] = alloca [[B]]*, align 8 +// CHECK: define{{.*}} void @_Z6testB2P1B(ptr +// CHECK: [[BVAR:%.*]] = alloca ptr, align 8 // CHECK: call void @llvm.dbg.declare( // CHECK: call void @_ZN2B3C1Ev( // CHECK-NEXT: [[T0:%.*]] = call i64 @_ZN2B3cv2B1Ev( // CHECK-NOT: call // CHECK: store i64 [[T0]], -// CHECK: load [[B]]*, [[B]]** [[BVAR]] +// CHECK: load ptr, ptr [[BVAR]] // CHECK-NOT: call // CHECK: call void @llvm.memcpy // CHECK-NOT: call -// CHECK: call void bitcast {{.*}} @objc_msgSend +// CHECK: call void @objc_msgSend // CHECK-NOT: call // CHECK: ret void @@ -191,24 +191,24 @@ void testC0(C *c) { c.c0 = c_helper; c.c0 = &c_helper; } -// CHECK: define{{.*}} void @_Z6testC0P1C([[C:%.*]]* -// CHECK: [[CVAR:%.*]] = alloca [[C]]*, align 8 -// CHECK: load [[C]]*, [[C]]** [[CVAR]] +// CHECK: define{{.*}} void @_Z6testC0P1C(ptr +// CHECK: [[CVAR:%.*]] = alloca ptr, align 8 +// CHECK: load ptr, ptr [[CVAR]] // CHECK-NOT: call -// CHECK: call void bitcast {{.*}} @objc_msgSend {{.*}} @_Z8c_helperv +// CHECK: call void @objc_msgSend({{.*}} @_Z8c_helperv // CHECK-NOT: call -// CHECK: call void bitcast {{.*}} @objc_msgSend {{.*}} @_Z8c_helperv +// CHECK: call void @objc_msgSend({{.*}} @_Z8c_helperv // CHECK-NOT: call // CHECK: ret void void testC1(C *c) { c.c1 += c_helper; } -// CHECK: define{{.*}} void @_Z6testC1P1C([[C]]* -// CHECK: [[CVAR:%.*]] = alloca [[C]]*, align 8 -// CHECK: load [[C]]*, [[C]]** [[CVAR]] +// CHECK: define{{.*}} void @_Z6testC1P1C(ptr +// CHECK: [[CVAR:%.*]] = alloca ptr, align 8 +// CHECK: load ptr, ptr [[CVAR]] // CHECK-NOT: call -// CHECK: [[T0:%.*]] = call i32 bitcast {{.*}} @objc_msgSend +// CHECK: [[T0:%.*]] = call i32 @objc_msgSend // CHECK-NOT: call // CHECK: store i32 [[T0]], // CHECK-NOT: call @@ -218,6 +218,6 @@ void testC1(C *c) { // CHECK-NOT: call // CHECK: call void @llvm.memcpy // CHECK-NOT: call -// CHECK: call void bitcast {{.*}} @objc_msgSend +// CHECK: call void @objc_msgSend // CHECK-NOT: call // CHECK: ret void diff --git a/clang/test/CodeGenObjCXX/property-reference.mm b/clang/test/CodeGenObjCXX/property-reference.mm index c07ecd9a95548..43d7570b545ce 100644 --- a/clang/test/CodeGenObjCXX/property-reference.mm +++ b/clang/test/CodeGenObjCXX/property-reference.mm @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -no-opaque-pointers %s -triple x86_64-apple-darwin10 -fobjc-runtime=macosx-fragile-10.5 -emit-llvm -o - | FileCheck %s +// RUN: %clang_cc1 %s -triple x86_64-apple-darwin10 -fobjc-runtime=macosx-fragile-10.5 -emit-llvm -o - | FileCheck %s // rdar://9208606 struct MyStruct { @@ -26,8 +26,8 @@ void test0() { const MyStruct& currentMyStruct = myClass.foo; } -// CHECK: [[C:%.*]] = call noundef nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) %struct.MyStruct* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend -// CHECK: store %struct.MyStruct* [[C]], %struct.MyStruct** [[D:%.*]] +// CHECK: [[C:%.*]] = call noundef nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) ptr @objc_msgSend +// CHECK: store ptr [[C]], ptr [[D:%.*]] namespace test1 { struct A { A(); A(const A&); A&operator=(const A&); ~A(); }; @@ -40,16 +40,14 @@ @interface Test1 { @implementation Test1 @synthesize prop1 = ivar; @end -// CHECK: define internal noundef nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) [[A:%.*]]* @"\01-[Test1 prop1]"( -// CHECK: [[SELF:%.*]] = alloca [[TEST1:%.*]]*, align 8 -// CHECK: [[T0:%.*]] = load [[TEST1]]*, [[TEST1]]** [[SELF]] -// CHECK-NEXT: [[T1:%.*]] = bitcast [[TEST1]]* [[T0]] to i8* -// CHECK-NEXT: [[T2:%.*]] = getelementptr inbounds i8, i8* [[T1]], i64 0 -// CHECK-NEXT: [[T3:%.*]] = bitcast i8* [[T2]] to [[A]]* -// CHECK-NEXT: ret [[A]]* [[T3]] +// CHECK: define internal noundef nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) ptr @"\01-[Test1 prop1]"( +// CHECK: [[SELF:%.*]] = alloca ptr, align 8 +// CHECK: [[T0:%.*]] = load ptr, ptr [[SELF]] +// CHECK-NEXT: [[T2:%.*]] = getelementptr inbounds i8, ptr [[T0]], i64 0 +// CHECK-NEXT: ret ptr [[T2]] // CHECK: define internal void @"\01-[Test1 setProp1:]"( -// CHECK: call noundef nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) [[A]]* @_ZN5test11AaSERKS0_( +// CHECK: call noundef nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) ptr @_ZN5test11AaSERKS0_( // CHECK-NEXT: ret void // rdar://problem/10497174 @@ -67,11 +65,11 @@ @interface Test2 // CHECK-LABEL: define weak_odr void @_Z5test2IiEvP5Test2( // CHECK: [[X:%.*]] = alloca i32, // CHECK: @objc_msgSend -// CHECK: store i32 {{%.*}}, i32* [[X]], -// CHECK: load i32, i32* [[X]], +// CHECK: store i32 {{%.*}}, ptr [[X]], +// CHECK: load i32, ptr [[X]], // CHECK: @objc_msgSend // CHECK: @objc_msgSend -// CHECK: load i32, i32* [[X]], +// CHECK: load i32, ptr [[X]], // CHECK-NEXT: add nsw // CHECK: @objc_msgSend // CHECK-NEXT: ret void @@ -86,11 +84,11 @@ @interface Test2 // CHECK-LABEL: define weak_odr void @_Z5test3IiEvP5Test2( // CHECK: [[X:%.*]] = alloca i32, // CHECK: @objc_msgSend -// CHECK: store i32 {{%.*}}, i32* [[X]], -// CHECK: load i32, i32* [[X]], +// CHECK: store i32 {{%.*}}, ptr [[X]], +// CHECK: load i32, ptr [[X]], // CHECK: @objc_msgSend // CHECK: @objc_msgSend -// CHECK: load i32, i32* [[X]], +// CHECK: load i32, ptr [[X]], // CHECK-NEXT: add nsw // CHECK: @objc_msgSend // CHECK-NEXT: ret void