diff options
| author | Bill Wendling <isanbard@gmail.com> | 2013-02-22 09:10:20 +0000 |
|---|---|---|
| committer | Bill Wendling <isanbard@gmail.com> | 2013-02-22 09:10:20 +0000 |
| commit | e1c4a1babd90ea097ef80df44011e977212c2e78 (patch) | |
| tree | c8a4cf6471fcb59e39f19d8a21421daed9285b24 /clang/test/CodeGenObjC/ns_consume_null_check.m | |
| parent | a032374ea0d069bff44045eee72ebdaa100ccc7a (diff) | |
| download | bcm5719-llvm-e1c4a1babd90ea097ef80df44011e977212c2e78.tar.gz bcm5719-llvm-e1c4a1babd90ea097ef80df44011e977212c2e78.zip | |
Update to use references to attribute groups instead of listing the attributes on the call/invoke instructions.
llvm-svn: 175878
Diffstat (limited to 'clang/test/CodeGenObjC/ns_consume_null_check.m')
| -rw-r--r-- | clang/test/CodeGenObjC/ns_consume_null_check.m | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/clang/test/CodeGenObjC/ns_consume_null_check.m b/clang/test/CodeGenObjC/ns_consume_null_check.m index 5328b9feb28..6a31a808f4c 100644 --- a/clang/test/CodeGenObjC/ns_consume_null_check.m +++ b/clang/test/CodeGenObjC/ns_consume_null_check.m @@ -25,7 +25,7 @@ void test0(void) { // CHECK-NEXT: [[EIGHT:%.*]] = bitcast i8* [[FN]] // CHECK-NEXT: [[CALL:%.*]] = call signext i8 [[EIGHT]] // CHECK-NEXT: br label [[CONT:%.*]] -// CHECK: call void @objc_release(i8* [[FIVE]]) nounwind +// CHECK: call void @objc_release(i8* [[FIVE]]) [[NUW:#[0-9]+]] // CHECK-NEXT: br label [[CONT]] // CHECK: phi i8 [ [[CALL]], {{%.*}} ], [ 0, {{%.*}} ] @@ -44,7 +44,7 @@ void test1(void) { // CHECK: [[T0:%.*]] = call i8* bitcast ( // CHECK-NEXT: store i8* [[T0]], i8** [[OBJ]] // CHECK-NEXT: [[T0:%.*]] = load i8** [[OBJ]] -// CHECK-NEXT: call i8* @objc_initWeak(i8** [[WEAKOBJ]], i8* [[T0]]) nounwind +// CHECK-NEXT: call i8* @objc_initWeak(i8** [[WEAKOBJ]], i8* [[T0]]) [[NUW]] // Okay, start the message-send. // CHECK-NEXT: [[T0:%.*]] = load [[MYOBJECT:%.*]]** @x // CHECK-NEXT: [[ARG:%.*]] = load i8** [[OBJ]] @@ -65,7 +65,7 @@ void test1(void) { // CHECK-NEXT: [[IMAGCALL:%.*]] = load float* [[T0]] // CHECK-NEXT: br label [[CONT:%.*]]{{$}} // Null path. -// CHECK: call void @objc_release(i8* [[ARG_RETAINED]]) nounwind +// CHECK: call void @objc_release(i8* [[ARG_RETAINED]]) [[NUW]] // CHECK-NEXT: br label [[CONT]] // Join point. // CHECK: [[REAL:%.*]] = phi float [ [[REALCALL]], [[INVOKE_CONT]] ], [ 0.000000e+00, [[FORNULL]] ] @@ -75,9 +75,11 @@ void test1(void) { // CHECK-NEXT: store float [[REAL]], float* [[T0]] // CHECK-NEXT: store float [[IMAG]], float* [[T1]] // Epilogue. -// CHECK-NEXT: call void @objc_destroyWeak(i8** [[WEAKOBJ]]) nounwind -// CHECK-NEXT: call void @objc_storeStrong(i8** [[OBJ]], i8* null) nounwind +// CHECK-NEXT: call void @objc_destroyWeak(i8** [[WEAKOBJ]]) [[NUW]] +// CHECK-NEXT: call void @objc_storeStrong(i8** [[OBJ]], i8* null) [[NUW]] // CHECK-NEXT: ret void // Cleanup. // CHECK: landingpad -// CHECK: call void @objc_destroyWeak(i8** [[WEAKOBJ]]) nounwind +// CHECK: call void @objc_destroyWeak(i8** [[WEAKOBJ]]) [[NUW]] + +// CHECK: attributes [[NUW]] = { nounwind } |

