diff options
Diffstat (limited to 'test/CodeGenObjCXX/arc-special-member-functions.mm')
-rw-r--r-- | test/CodeGenObjCXX/arc-special-member-functions.mm | 84 |
1 files changed, 42 insertions, 42 deletions
diff --git a/test/CodeGenObjCXX/arc-special-member-functions.mm b/test/CodeGenObjCXX/arc-special-member-functions.mm index 8b002d5..df3c229 100644 --- a/test/CodeGenObjCXX/arc-special-member-functions.mm +++ b/test/CodeGenObjCXX/arc-special-member-functions.mm @@ -92,73 +92,73 @@ void test_ObjCBlockMember_copy_assign(ObjCBlockMember m1, ObjCBlockMember m2) { // Implicitly-generated copy assignment operator for ObjCBlockMember // CHECK: define linkonce_odr dereferenceable({{[0-9]+}}) {{%.*}}* @_ZN15ObjCBlockMemberaSERKS_( -// CHECK: [[T0:%.*]] = getelementptr inbounds [[T:%.*]]* {{%.*}}, i32 0, i32 0 -// CHECK-NEXT: [[T1:%.*]] = load i32 (i32)** [[T0]], align 8 +// CHECK: [[T0:%.*]] = getelementptr inbounds [[T:%.*]], [[T:%.*]]* {{%.*}}, i32 0, i32 0 +// CHECK-NEXT: [[T1:%.*]] = load i32 (i32)*, i32 (i32)** [[T0]], align 8 // CHECK-NEXT: [[T2:%.*]] = bitcast i32 (i32)* [[T1]] to i8* // CHECK-NEXT: [[T3:%.*]] = call i8* @objc_retainBlock(i8* [[T2]]) // CHECK-NEXT: [[T4:%.*]] = bitcast i8* [[T3]] to i32 (i32)* -// CHECK-NEXT: [[T5:%.*]] = getelementptr inbounds [[T]]* {{%.*}}, i32 0, i32 0 -// CHECK-NEXT: [[T6:%.*]] = load i32 (i32)** [[T5]], align 8 +// CHECK-NEXT: [[T5:%.*]] = getelementptr inbounds [[T]], [[T]]* {{%.*}}, i32 0, i32 0 +// CHECK-NEXT: [[T6:%.*]] = load i32 (i32)*, i32 (i32)** [[T5]], align 8 // CHECK-NEXT: store i32 (i32)* [[T4]], i32 (i32)** [[T5]] // CHECK-NEXT: [[T7:%.*]] = bitcast i32 (i32)* [[T6]] to i8* // CHECK-NEXT: call void @objc_release(i8* [[T7]]) // CHECK-NEXT: ret -// Implicitly-generated copy constructor for ObjCBlockMember -// CHECK-LABEL: define linkonce_odr void @_ZN15ObjCBlockMemberC2ERKS_ -// CHECK: call i8* @objc_retainBlock -// CHECK: ret - -// Implicitly-generated destructor for ObjCBlockMember -// CHECK-LABEL: define linkonce_odr void @_ZN15ObjCBlockMemberD2Ev -// CHECK: call void @objc_storeStrong(i8* -// CHECK: ret - -// Implicitly-generated default constructor for ObjCBlockMember -// CHECK-LABEL: define linkonce_odr void @_ZN15ObjCBlockMemberC2Ev -// CHECK: store {{.*}} null, +// Implicitly-generated default constructor for ObjCMember +// CHECK-LABEL: define linkonce_odr void @_ZN10ObjCMemberC2Ev +// CHECK-NOT: objc_release +// CHECK: store i8* null // CHECK-NEXT: ret void -// Implicitly-generated copy constructor for ObjCArrayMember -// CHECK-LABEL: define linkonce_odr void @_ZN15ObjCArrayMemberC2ERKS_ -// CHECK: br i1 +// Implicitly-generated destructor for ObjCMember +// CHECK-LABEL: define linkonce_odr void @_ZN10ObjCMemberD2Ev +// CHECK: call void @objc_storeStrong +// CHECK: ret void + +// Implicitly-generated copy constructor for ObjCMember +// CHECK-LABEL: define linkonce_odr void @_ZN10ObjCMemberC2ERKS_ +// CHECK-NOT: objc_release // CHECK: call i8* @objc_retain // CHECK-NEXT: store i8* -// CHECK-NEXT: br label +// CHECK-NEXT: ret void + +// Implicitly-generated default constructor for ObjCArrayMember +// CHECK-LABEL: define linkonce_odr void @_ZN15ObjCArrayMemberC2Ev +// CHECK: call void @llvm.memset.p0i8.i64 // CHECK: ret // Implicitly-generated destructor for ObjCArrayMember // CHECK-LABEL: define linkonce_odr void @_ZN15ObjCArrayMemberD2Ev -// CHECK: [[BEGIN:%.*]] = getelementptr inbounds [2 x [3 x i8*]]* -// CHECK-NEXT: [[END:%.*]] = getelementptr inbounds i8** [[BEGIN]], i64 6 +// CHECK: [[BEGIN:%.*]] = getelementptr inbounds [2 x [3 x i8*]], [2 x [3 x i8*]]* +// CHECK-NEXT: [[END:%.*]] = getelementptr inbounds i8*, i8** [[BEGIN]], i64 6 // CHECK-NEXT: br label // CHECK: [[PAST:%.*]] = phi i8** [ [[END]], {{%.*}} ], [ [[CUR:%.*]], {{%.*}} ] -// CHECK-NEXT: [[CUR]] = getelementptr inbounds i8** [[PAST]], i64 -1 +// CHECK-NEXT: [[CUR]] = getelementptr inbounds i8*, i8** [[PAST]], i64 -1 // CHECK-NEXT: call void @objc_storeStrong(i8** [[CUR]], i8* null) // CHECK-NEXT: [[T1:%.*]] = icmp eq i8** [[CUR]], [[BEGIN]] -// CHECK-NEXT: br i1 [[T1]], +// CHECK-NEXT: br i1 [[T1]], // CHECK: ret void -// Implicitly-generated default constructor for ObjCArrayMember -// CHECK-LABEL: define linkonce_odr void @_ZN15ObjCArrayMemberC2Ev -// CHECK: call void @llvm.memset.p0i8.i64 -// CHECK: ret - -// Implicitly-generated copy constructor for ObjCMember -// CHECK-LABEL: define linkonce_odr void @_ZN10ObjCMemberC2ERKS_ -// CHECK-NOT: objc_release +// Implicitly-generated copy constructor for ObjCArrayMember +// CHECK-LABEL: define linkonce_odr void @_ZN15ObjCArrayMemberC2ERKS_ +// CHECK: br i1 // CHECK: call i8* @objc_retain // CHECK-NEXT: store i8* +// CHECK-NEXT: br label +// CHECK: ret + +// Implicitly-generated default constructor for ObjCBlockMember +// CHECK-LABEL: define linkonce_odr void @_ZN15ObjCBlockMemberC2Ev +// CHECK: store {{.*}} null, // CHECK-NEXT: ret void -// Implicitly-generated destructor for ObjCMember -// CHECK-LABEL: define linkonce_odr void @_ZN10ObjCMemberD2Ev -// CHECK: call void @objc_storeStrong -// CHECK: ret void +// Implicitly-generated destructor for ObjCBlockMember +// CHECK-LABEL: define linkonce_odr void @_ZN15ObjCBlockMemberD2Ev +// CHECK: call void @objc_storeStrong(i8* +// CHECK: ret -// Implicitly-generated default constructor for ObjCMember -// CHECK-LABEL: define linkonce_odr void @_ZN10ObjCMemberC2Ev -// CHECK-NOT: objc_release -// CHECK: store i8* null -// CHECK-NEXT: ret void +// Implicitly-generated copy constructor for ObjCBlockMember +// CHECK-LABEL: define linkonce_odr void @_ZN15ObjCBlockMemberC2ERKS_ +// CHECK: call i8* @objc_retainBlock +// CHECK: ret |