diff options
Diffstat (limited to 'clang/test/CodeGenObjC/noescape.m')
-rw-r--r-- | clang/test/CodeGenObjC/noescape.m | 71 |
1 files changed, 0 insertions, 71 deletions
diff --git a/clang/test/CodeGenObjC/noescape.m b/clang/test/CodeGenObjC/noescape.m deleted file mode 100644 index 8ea2aa94e00..00000000000 --- a/clang/test/CodeGenObjC/noescape.m +++ /dev/null @@ -1,71 +0,0 @@ -// RUN: %clang_cc1 -fblocks -emit-llvm -o - %s | FileCheck %s - -typedef void (^BlockTy)(void); - -union U { - int *i; - long long *ll; -} __attribute__((transparent_union)); - -void noescapeFunc0(id, __attribute__((noescape)) BlockTy); -void noescapeFunc1(__attribute__((noescape)) int *); -void noescapeFunc2(__attribute__((noescape)) id); -void noescapeFunc3(__attribute__((noescape)) union U); - -// CHECK-LABEL: define void @test0( -// CHECK: call void @noescapeFunc0({{.*}}, {{.*}} nocapture {{.*}}) -// CHECK: declare void @noescapeFunc0(i8*, {{.*}} nocapture) -void test0(BlockTy b) { - noescapeFunc0(0, b); -} - -// CHECK-LABEL: define void @test1( -// CHECK: call void @noescapeFunc1({{.*}} nocapture {{.*}}) -// CHECK: declare void @noescapeFunc1({{.*}} nocapture) -void test1(int *i) { - noescapeFunc1(i); -} - -// CHECK-LABEL: define void @test2( -// CHECK: call void @noescapeFunc2({{.*}} nocapture {{.*}}) -// CHECK: declare void @noescapeFunc2({{.*}} nocapture) -void test2(id i) { - noescapeFunc2(i); -} - -// CHECK-LABEL: define void @test3( -// CHECK: call void @noescapeFunc3({{.*}} nocapture {{.*}}) -// CHECK: declare void @noescapeFunc3({{.*}} nocapture) -void test3(union U u) { - noescapeFunc3(u); -} - -// CHECK: define internal void @"\01-[C0 m0:]"({{.*}}, {{.*}}, {{.*}} nocapture {{.*}}) - -// CHECK-LABEL: define void @test4( -// CHECK: call void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, i32*)*)(i8* {{.*}}, i8* {{.*}}, i32* nocapture {{.*}}) - -@interface C0 --(void) m0:(int*)__attribute__((noescape)) p0; -@end - -@implementation C0 --(void) m0:(int*)__attribute__((noescape)) p0 { -} -@end - -void test4(C0 *c0, int *p) { - [c0 m0:p]; -} - -// CHECK-LABEL: define void @test5( -// CHECK: call void {{.*}}(i8* bitcast ({ i8**, i32, i32, i8*, {{.*}} }* @{{.*}} to i8*), i32* nocapture {{.*}}) -// CHECK: call void {{.*}}(i8* {{.*}}, i32* nocapture {{.*}}) -// CHECK: define internal void @{{.*}}(i8* {{.*}}, i32* nocapture {{.*}}) - -typedef void (^BlockTy2)(__attribute__((noescape)) int *); - -void test5(BlockTy2 b, int *p) { - ^(int *__attribute__((noescape)) p0){}(p); - b(p); -} |