diff options
| author | Stephen Lin <stephenwlin@gmail.com> | 2013-08-15 06:47:53 +0000 |
|---|---|---|
| committer | Stephen Lin <stephenwlin@gmail.com> | 2013-08-15 06:47:53 +0000 |
| commit | 4362261b0093730e46ffcad910e8b465cf0bb1cb (patch) | |
| tree | b05fa6d247505d0ab46b16619f702532e189f698 /clang/test/CodeGenObjC | |
| parent | 83e042a21b5392882ccc020baa9ade52851b5903 (diff) | |
| download | bcm5719-llvm-4362261b0093730e46ffcad910e8b465cf0bb1cb.tar.gz bcm5719-llvm-4362261b0093730e46ffcad910e8b465cf0bb1cb.zip | |
CHECK-LABEL-ify some code gen tests to improve diagnostic experience when tests fail.
llvm-svn: 188447
Diffstat (limited to 'clang/test/CodeGenObjC')
38 files changed, 153 insertions, 153 deletions
diff --git a/clang/test/CodeGenObjC/arc-block-copy-escape.m b/clang/test/CodeGenObjC/arc-block-copy-escape.m index 3ba74263751..afe7c0bdc18 100644 --- a/clang/test/CodeGenObjC/arc-block-copy-escape.m +++ b/clang/test/CodeGenObjC/arc-block-copy-escape.m @@ -8,14 +8,14 @@ void use_int(int); void test0(int i) { block_t block = ^{ use_int(i); }; - // CHECK: define void @test0( + // CHECK-LABEL: define void @test0( // CHECK: call i8* @objc_retainBlock(i8* {{%.*}}) [[NUW:#[0-9]+]], !clang.arc.copy_on_escape // CHECK: ret void } void test1(int i) { id block = ^{ use_int(i); }; - // CHECK: define void @test1( + // CHECK-LABEL: define void @test1( // CHECK: call i8* @objc_retainBlock(i8* {{%.*}}) [[NUW]] // CHECK-NOT: !clang.arc.copy_on_escape // CHECK: ret void diff --git a/clang/test/CodeGenObjC/arc-blocks.m b/clang/test/CodeGenObjC/arc-blocks.m index c9ba2f61534..4ba3f05fd9f 100644 --- a/clang/test/CodeGenObjC/arc-blocks.m +++ b/clang/test/CodeGenObjC/arc-blocks.m @@ -7,7 +7,7 @@ void test0(id (^maker)(void)) { } int (^test1(int x))(void) { - // CHECK: define i32 ()* @test1( + // CHECK-LABEL: define i32 ()* @test1( // CHECK: [[X:%.*]] = alloca i32, // CHECK-NEXT: [[BLOCK:%.*]] = alloca [[BLOCK_T:<{.*}>]], // CHECK-NEXT: store i32 {{%.*}}, i32* [[X]] @@ -23,7 +23,7 @@ int (^test1(int x))(void) { } void test2(id x) { -// CHECK: define void @test2( +// CHECK-LABEL: define void @test2( // CHECK: [[X:%.*]] = alloca i8*, // CHECK-NEXT: [[BLOCK:%.*]] = alloca [[BLOCK_T:<{.*}>]], // CHECK-NEXT: [[PARM:%.*]] = call i8* @objc_retain(i8* {{%.*}}) @@ -43,7 +43,7 @@ void test2(id x) { extern void test2_helper(id (^)(void)); test2_helper(^{ return x; }); -// CHECK: define internal void @__copy_helper_block_ +// CHECK-LABEL: define internal void @__copy_helper_block_ // CHECK: [[T0:%.*]] = load i8** // CHECK-NEXT: [[SRC:%.*]] = bitcast i8* [[T0]] to [[BLOCK_T]]* // CHECK-NEXT: [[T0:%.*]] = load i8** @@ -53,7 +53,7 @@ void test2(id x) { // CHECK-NEXT: [[T2:%.*]] = call i8* @objc_retain(i8* [[T1]]) [[NUW]] // CHECK-NEXT: ret void -// CHECK: define internal void @__destroy_helper_block_ +// CHECK-LABEL: define internal void @__destroy_helper_block_ // CHECK: [[T0:%.*]] = load i8** // CHECK-NEXT: [[T1:%.*]] = bitcast i8* [[T0]] to [[BLOCK_T]]* // CHECK-NEXT: [[T2:%.*]] = getelementptr inbounds [[BLOCK_T]]* [[T1]], i32 0, i32 5 @@ -66,7 +66,7 @@ void test3(void (^sink)(id*)) { __strong id strong; sink(&strong); - // CHECK: define void @test3( + // CHECK-LABEL: define void @test3( // CHECK: [[SINK:%.*]] = alloca void (i8**)* // CHECK-NEXT: [[STRONG:%.*]] = alloca i8* // CHECK-NEXT: [[TEMP:%.*]] = alloca i8* @@ -108,7 +108,7 @@ void test4(void) { __block id var = test4_source(); test4_helper(^{ var = 0; }); - // CHECK: define void @test4() + // CHECK-LABEL: define void @test4() // CHECK: [[VAR:%.*]] = alloca [[BYREF_T:%.*]], // CHECK-NEXT: [[BLOCK:%.*]] = alloca [[BLOCK_T:<{.*}>]], // CHECK: [[T0:%.*]] = getelementptr inbounds [[BYREF_T]]* [[VAR]], i32 0, i32 2 @@ -130,7 +130,7 @@ void test4(void) { // CHECK-NEXT: call void @objc_release(i8* [[T0]]) // CHECK: ret void - // CHECK: define internal void @__Block_byref_object_copy_ + // CHECK-LABEL: define internal void @__Block_byref_object_copy_ // CHECK: [[T0:%.*]] = getelementptr inbounds [[BYREF_T]]* {{%.*}}, i32 0, i32 6 // CHECK-NEXT: load i8** // CHECK-NEXT: bitcast i8* {{%.*}} to [[BYREF_T]]* @@ -139,22 +139,22 @@ void test4(void) { // CHECK-NEXT: store i8* [[T2]], i8** [[T0]] // CHECK-NEXT: store i8* null, i8** [[T1]] - // CHECK: define internal void @__Block_byref_object_dispose_ + // CHECK-LABEL: define internal void @__Block_byref_object_dispose_ // CHECK: [[T0:%.*]] = getelementptr inbounds [[BYREF_T]]* {{%.*}}, i32 0, i32 6 // CHECK-NEXT: [[T1:%.*]] = load i8** [[T0]] // CHECK-NEXT: call void @objc_release(i8* [[T1]]) - // CHECK: define internal void @__test4_block_invoke + // CHECK-LABEL: define internal void @__test4_block_invoke // CHECK: [[SLOT:%.*]] = getelementptr inbounds {{.*}}, i32 0, i32 6 // CHECK-NEXT: [[T0:%.*]] = load i8** [[SLOT]], align 8 // CHECK-NEXT: store i8* null, i8** [[SLOT]], // CHECK-NEXT: call void @objc_release(i8* [[T0]]) // CHECK-NEXT: ret void - // CHECK: define internal void @__copy_helper_block_ + // CHECK-LABEL: define internal void @__copy_helper_block_ // CHECK: call void @_Block_object_assign(i8* {{%.*}}, i8* {{%.*}}, i32 8) - // CHECK: define internal void @__destroy_helper_block_ + // CHECK-LABEL: define internal void @__destroy_helper_block_ // CHECK: call void @_Block_object_dispose(i8* {{%.*}}, i32 8) } @@ -164,7 +164,7 @@ void test5(void) { __unsafe_unretained id var = test5_source(); test5_helper(^{ (void) var; }); - // CHECK: define void @test5() + // CHECK-LABEL: define void @test5() // CHECK: [[VAR:%.*]] = alloca i8* // CHECK-NEXT: [[BLOCK:%.*]] = alloca [[BLOCK_T:<{.*}>]], // CHECK: [[T0:%.*]] = call i8* @test5_source() @@ -187,7 +187,7 @@ void test6(void) { __block __weak id var = test6_source(); test6_helper(^{ var = 0; }); - // CHECK: define void @test6() + // CHECK-LABEL: define void @test6() // CHECK: [[VAR:%.*]] = alloca [[BYREF_T:%.*]], // CHECK-NEXT: [[BLOCK:%.*]] = alloca [[BLOCK_T:<{.*}>]], // CHECK: [[T0:%.*]] = getelementptr inbounds [[BYREF_T]]* [[VAR]], i32 0, i32 2 @@ -209,27 +209,27 @@ void test6(void) { // CHECK-NEXT: call void @objc_destroyWeak(i8** [[SLOT]]) // CHECK: ret void - // CHECK: define internal void @__Block_byref_object_copy_ + // CHECK-LABEL: define internal void @__Block_byref_object_copy_ // CHECK: [[T0:%.*]] = getelementptr inbounds [[BYREF_T]]* {{%.*}}, i32 0, i32 6 // CHECK-NEXT: load i8** // CHECK-NEXT: bitcast i8* {{%.*}} to [[BYREF_T]]* // CHECK-NEXT: [[T1:%.*]] = getelementptr inbounds [[BYREF_T]]* {{%.*}}, i32 0, i32 6 // CHECK-NEXT: call void @objc_moveWeak(i8** [[T0]], i8** [[T1]]) - // CHECK: define internal void @__Block_byref_object_dispose_ + // CHECK-LABEL: define internal void @__Block_byref_object_dispose_ // CHECK: [[T0:%.*]] = getelementptr inbounds [[BYREF_T]]* {{%.*}}, i32 0, i32 6 // CHECK-NEXT: call void @objc_destroyWeak(i8** [[T0]]) - // CHECK: define internal void @__test6_block_invoke + // CHECK-LABEL: define internal void @__test6_block_invoke // CHECK: [[SLOT:%.*]] = getelementptr inbounds {{.*}}, i32 0, i32 6 // CHECK-NEXT: call i8* @objc_storeWeak(i8** [[SLOT]], i8* null) // CHECK-NEXT: ret void - // CHECK: define internal void @__copy_helper_block_ + // CHECK-LABEL: define internal void @__copy_helper_block_ // 0x8 - FIELD_IS_BYREF (no FIELD_IS_WEAK because clang in control) // CHECK: call void @_Block_object_assign(i8* {{%.*}}, i8* {{%.*}}, i32 8) - // CHECK: define internal void @__destroy_helper_block_ + // CHECK-LABEL: define internal void @__destroy_helper_block_ // 0x8 - FIELD_IS_BYREF (no FIELD_IS_WEAK because clang in control) // CHECK: call void @_Block_object_dispose(i8* {{%.*}}, i32 8) } @@ -241,7 +241,7 @@ void test7(void) { __weak id var = test7_source(); test7_helper(^{ test7_consume(var); }); - // CHECK: define void @test7() + // CHECK-LABEL: define void @test7() // CHECK: [[VAR:%.*]] = alloca i8*, // CHECK-NEXT: [[BLOCK:%.*]] = alloca [[BLOCK_T:<{.*}>]], // CHECK: [[T0:%.*]] = call i8* @test7_source() @@ -258,19 +258,19 @@ void test7(void) { // CHECK-NEXT: call void @objc_destroyWeak(i8** [[VAR]]) // CHECK: ret void - // CHECK: define internal void @__test7_block_invoke + // CHECK-LABEL: define internal void @__test7_block_invoke // CHECK: [[SLOT:%.*]] = getelementptr inbounds [[BLOCK_T]]* {{%.*}}, i32 0, i32 5 // CHECK-NEXT: [[T0:%.*]] = call i8* @objc_loadWeakRetained(i8** [[SLOT]]) // CHECK-NEXT: call void @test7_consume(i8* [[T0]]) // CHECK-NEXT: call void @objc_release(i8* [[T0]]) // CHECK: ret void - // CHECK: define internal void @__copy_helper_block_ + // CHECK-LABEL: define internal void @__copy_helper_block_ // CHECK: getelementptr // CHECK-NEXT: getelementptr // CHECK-NEXT: call void @objc_copyWeak( - // CHECK: define internal void @__destroy_helper_block_ + // CHECK-LABEL: define internal void @__destroy_helper_block_ // CHECK: getelementptr // CHECK-NEXT: call void @objc_destroyWeak( } @@ -311,7 +311,7 @@ id test9(void) { return test9_produce(); }(); -// CHECK: define i8* @test9( +// CHECK-LABEL: define i8* @test9( // CHECK: load i8** getelementptr // CHECK-NEXT: bitcast i8* // CHECK-NEXT: call i8* @@ -328,7 +328,7 @@ id test9(void) { // when the initialization captures the variable. void test10a(void) { __block void (^block)(void) = ^{ block(); }; - // CHECK: define void @test10a() + // CHECK-LABEL: define void @test10a() // CHECK: [[BYREF:%.*]] = alloca [[BYREF_T:%.*]], // Zero-initialization before running the initializer. @@ -362,7 +362,7 @@ void test10a(void) { // We can also use _Block_object_assign/destroy with // BLOCK_FIELD_IS_BLOCK as long as we don't pass BLOCK_BYREF_CALLER. -// CHECK: define internal void @__Block_byref_object_copy +// CHECK-LABEL: define internal void @__Block_byref_object_copy // CHECK: [[D0:%.*]] = load i8** {{%.*}} // CHECK-NEXT: [[D1:%.*]] = bitcast i8* [[D0]] to [[BYREF_T]]* // CHECK-NEXT: [[D2:%.*]] = getelementptr inbounds [[BYREF_T]]* [[D1]], i32 0, i32 6 @@ -376,7 +376,7 @@ void test10a(void) { // CHECK-NEXT: store void ()* [[T3]], void ()** [[D2]], align 8 // CHECK: ret void -// CHECK: define internal void @__Block_byref_object_dispose +// CHECK-LABEL: define internal void @__Block_byref_object_dispose // CHECK: [[T0:%.*]] = load i8** {{%.*}} // CHECK-NEXT: [[T1:%.*]] = bitcast i8* [[T0]] to [[BYREF_T]]* // CHECK-NEXT: [[T2:%.*]] = getelementptr inbounds [[BYREF_T]]* [[T1]], i32 0, i32 6 @@ -391,7 +391,7 @@ void test10b(void) { __block void (^block)(void); block = ^{ block(); }; - // CHECK: define void @test10b() + // CHECK-LABEL: define void @test10b() // CHECK: [[BYREF:%.*]] = alloca [[BYREF_T:%.*]], // Zero-initialize. @@ -427,7 +427,7 @@ void test11a(void) { int x; test11_helper(^{ (void) x; }); - // CHECK: define void @test11a() + // CHECK-LABEL: define void @test11a() // CHECK: [[X:%.*]] = alloca i32, align 4 // CHECK-NEXT: [[BLOCK:%.*]] = alloca [[BLOCK_T:<{.*}>]], align 8 // CHECK: [[T0:%.*]] = bitcast [[BLOCK_T]]* [[BLOCK]] to void ()* @@ -444,7 +444,7 @@ void test11b(void) { int x; id b = ^{ (void) x; }; - // CHECK: define void @test11b() + // CHECK-LABEL: define void @test11b() // CHECK: [[X:%.*]] = alloca i32, align 4 // CHECK-NEXT: [[B:%.*]] = alloca i8*, align 8 // CHECK-NEXT: [[BLOCK:%.*]] = alloca [[BLOCK_T:<{.*}>]], align 8 @@ -487,7 +487,7 @@ void test13(id x) { void (^b)(void) = (x ? ^{test13_helper(x);} : 0); test13_use(b); - // CHECK: define void @test13( + // CHECK-LABEL: define void @test13( // CHECK: [[X:%.*]] = alloca i8*, align 8 // CHECK-NEXT: [[B:%.*]] = alloca void ()*, align 8 // CHECK-NEXT: [[BLOCK:%.*]] = alloca [[BLOCK_T:.*]], align 8 @@ -547,7 +547,7 @@ void test15(int a) { void test16() { void (^BLKVAR)(void) = ^{ BLKVAR(); }; - // CHECK: define void @test16( + // CHECK-LABEL: define void @test16( // CHECK: [[BLKVAR:%.*]] = alloca void ()*, align 8 // CHECK-NEXT: [[BLOCK:%.*]] = alloca [[BLOCK_T:<{.*}>]], // CHECK-NEXT: [[SLOTREL:%.*]] = getelementptr inbounds [[BLOCK_T]]* [[BLOCK]], i32 0, i32 5 @@ -567,7 +567,7 @@ id (^test17(id self, int which))(void) { } return (void*) 0; } -// CHECK: define i8* ()* @test17( +// CHECK-LABEL: define i8* ()* @test17( // CHECK: [[RET:%.*]] = alloca i8* ()*, align // CHECK-NEXT: [[SELF:%.*]] = alloca i8*, // CHECK: [[B0:%.*]] = alloca [[BLOCK:<.*>]], align @@ -612,7 +612,7 @@ id (^test17(id self, int which))(void) { // CHECK-NEXT: br label void test18(id x) { -// CHECK-UNOPT: define void @test18( +// CHECK-UNOPT-LABEL: define void @test18( // CHECK-UNOPT: [[X:%.*]] = alloca i8*, // CHECK-UNOPT-NEXT: [[BLOCK:%.*]] = alloca [[BLOCK_T:<{.*}>]], // CHECK-UNOPT-NEXT: store i8* null, i8** [[X]] @@ -630,7 +630,7 @@ void test18(id x) { extern void test18_helper(id (^)(void)); test18_helper(^{ return x; }); -// CHECK-UNOPT: define internal void @__copy_helper_block_ +// CHECK-UNOPT-LABEL: define internal void @__copy_helper_block_ // CHECK-UNOPT: [[T0:%.*]] = load i8** // CHECK-UNOPT-NEXT: [[SRC:%.*]] = bitcast i8* [[T0]] to [[BLOCK_T]]* // CHECK-UNOPT-NEXT: [[T0:%.*]] = load i8** @@ -642,7 +642,7 @@ void test18(id x) { // CHECK-UNOPT-NEXT: call void @objc_storeStrong(i8** [[T1]], i8* [[T2]]) [[NUW]] // CHECK-UNOPT-NEXT: ret void -// CHECK-UNOPT: define internal void @__destroy_helper_block_ +// CHECK-UNOPT-LABEL: define internal void @__destroy_helper_block_ // CHECK-UNOPT: [[T0:%.*]] = load i8** // CHECK-UNOPT-NEXT: [[T1:%.*]] = bitcast i8* [[T0]] to [[BLOCK_T]]* // CHECK-UNOPT-NEXT: [[T2:%.*]] = getelementptr inbounds [[BLOCK_T]]* [[T1]], i32 0, i32 5 @@ -653,7 +653,7 @@ void test18(id x) { // rdar://13588325 void test19_sink(void (^)(int)); void test19(void (^b)(void)) { -// CHECK: define void @test19( +// CHECK-LABEL: define void @test19( // Prologue. // CHECK: [[B:%.*]] = alloca void ()*, // CHECK-NEXT: [[BLOCK:%.*]] = alloca [[BLOCK_T:<{.*}>]], diff --git a/clang/test/CodeGenObjC/arc-bridged-cast.m b/clang/test/CodeGenObjC/arc-bridged-cast.m index eb9045d3d84..cdfe1dbfc55 100644 --- a/clang/test/CodeGenObjC/arc-bridged-cast.m +++ b/clang/test/CodeGenObjC/arc-bridged-cast.m @@ -14,7 +14,7 @@ CFStringRef CFGetString(void); id CreateSomething(void); NSString *CreateNSString(void); -// CHECK: define void @bridge_transfer_from_cf +// CHECK-LABEL: define void @bridge_transfer_from_cf void bridge_transfer_from_cf(int *i) { // CHECK: store i32 7 *i = 7; @@ -34,7 +34,7 @@ void bridge_transfer_from_cf(int *i) { // CHECK-NEXT: ret void } -// CHECK: define void @bridge_from_cf +// CHECK-LABEL: define void @bridge_from_cf void bridge_from_cf(int *i) { // CHECK: store i32 7 *i = 7; @@ -53,7 +53,7 @@ void bridge_from_cf(int *i) { // CHECK-NEXT: ret void } -// CHECK: define void @bridge_retained_of_cf +// CHECK-LABEL: define void @bridge_retained_of_cf void bridge_retained_of_cf(int *i) { *i = 7; // CHECK: call i8* @CreateSomething() @@ -70,7 +70,7 @@ void bridge_retained_of_cf(int *i) { // CHECK-NEXT: ret void } -// CHECK: define void @bridge_of_cf +// CHECK-LABEL: define void @bridge_of_cf void bridge_of_cf(int *i) { // CHECK: store i32 7 *i = 7; diff --git a/clang/test/CodeGenObjC/arc-exceptions.m b/clang/test/CodeGenObjC/arc-exceptions.m index aa3d2f3640c..dafffd81f50 100644 --- a/clang/test/CodeGenObjC/arc-exceptions.m +++ b/clang/test/CodeGenObjC/arc-exceptions.m @@ -11,7 +11,7 @@ void test0(void) { } @catch (Ety *e) { } } -// CHECK: define void @test0() +// CHECK-LABEL: define void @test0() // CHECK: [[E:%.*]] = alloca [[ETY:%.*]]*, align 8 // CHECK-NEXT: invoke void @test0_helper() // CHECK: [[T0:%.*]] = call i8* @objc_begin_catch( @@ -31,7 +31,7 @@ void test1(void) { } @catch (__weak Ety *e) { } } -// CHECK: define void @test1() +// CHECK-LABEL: define void @test1() // CHECK: [[E:%.*]] = alloca [[ETY:%.*]]*, align 8 // CHECK-NEXT: invoke void @test1_helper() // CHECK: [[T0:%.*]] = call i8* @objc_begin_catch( diff --git a/clang/test/CodeGenObjC/arc-foreach.m b/clang/test/CodeGenObjC/arc-foreach.m index 4bf4f85bd3e..ea4da657ced 100644 --- a/clang/test/CodeGenObjC/arc-foreach.m +++ b/clang/test/CodeGenObjC/arc-foreach.m @@ -22,7 +22,7 @@ void test0(NSArray *array) { } } -// CHECK-LP64: define void @test0( +// CHECK-LP64-LABEL: define void @test0( // CHECK-LP64: [[ARRAY:%.*]] = alloca [[ARRAY_T:%.*]]*, // CHECK-LP64-NEXT: [[X:%.*]] = alloca i8*, // CHECK-LP64-NEXT: [[STATE:%.*]] = alloca [[STATE_T:%.*]], @@ -82,7 +82,7 @@ void test0(NSArray *array) { // CHECK-LP64-NEXT: call void @objc_storeStrong(i8** [[T0]], i8* null) // CHECK-LP64-NEXT: ret void -// CHECK-LP64: define internal void @__test0_block_invoke +// CHECK-LP64-LABEL: define internal void @__test0_block_invoke // CHECK-LP64: [[BLOCK:%.*]] = bitcast i8* {{%.*}} to [[BLOCK_T]]* // CHECK-LP64-NOT: ret // CHECK-LP64: [[T0:%.*]] = getelementptr inbounds [[BLOCK_T]]* [[BLOCK]], i32 0, i32 5 @@ -95,7 +95,7 @@ void test1(NSArray *array) { } } -// CHECK-LP64: define void @test1( +// CHECK-LP64-LABEL: define void @test1( // CHECK-LP64: alloca [[ARRAY_T:%.*]]*, // CHECK-LP64-NEXT: [[X:%.*]] = alloca i8*, // CHECK-LP64-NEXT: [[STATE:%.*]] = alloca [[STATE_T:%.*]], @@ -128,7 +128,7 @@ void test2(Test2 *a) { } } -// CHECK-LP64: define void @test2( +// CHECK-LP64-LABEL: define void @test2( // CHECK-LP64: [[T0:%.*]] = call [[ARRAY_T]]* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to [[ARRAY_T]]* (i8*, i8*)*)( // CHECK-LP64-NEXT: [[T1:%.*]] = bitcast [[ARRAY_T]]* [[T0]] to i8* // CHECK-LP64-NEXT: [[T2:%.*]] = call i8* @objc_retainAutoreleasedReturnValue(i8* [[T1]]) @@ -160,7 +160,7 @@ void test3(NSArray *array) { use(x); } - // CHECK-LP64: define void @test3( + // CHECK-LP64-LABEL: define void @test3( // CHECK-LP64: [[ARRAY:%.*]] = alloca [[ARRAY_T]]*, align 8 // CHECK-LP64-NEXT: [[X:%.*]] = alloca i8*, align 8 // CHECK-LP64: [[T0:%.*]] = load i8** [[X]], align 8 diff --git a/clang/test/CodeGenObjC/arc-literals.m b/clang/test/CodeGenObjC/arc-literals.m index 78c5d9d2372..19a5516dc7c 100644 --- a/clang/test/CodeGenObjC/arc-literals.m +++ b/clang/test/CodeGenObjC/arc-literals.m @@ -12,7 +12,7 @@ // CHECK: c"dictionaryWithObjects:forKeys:count:\00" // CHECK: c"prop\00" -// CHECK: define void @test_numeric() +// CHECK-LABEL: define void @test_numeric() void test_numeric() { // CHECK: {{call.*objc_msgSend.*i32 17}} // CHECK: call i8* @objc_retainAutoreleasedReturnValue @@ -33,7 +33,7 @@ void test_numeric() { // CHECK-NEXT: ret void } -// CHECK: define void @test_array +// CHECK-LABEL: define void @test_array void test_array(id a, id b) { // CHECK: [[A:%.*]] = alloca i8*, // CHECK: [[B:%.*]] = alloca i8*, @@ -65,7 +65,7 @@ void test_array(id a, id b) { // CHECK-NEXT: ret void } -// CHECK: define void @test_dictionary +// CHECK-LABEL: define void @test_dictionary void test_dictionary(id k1, id o1, id k2, id o2) { // CHECK: [[K1:%.*]] = alloca i8*, // CHECK: [[O1:%.*]] = alloca i8*, @@ -119,7 +119,7 @@ void test_dictionary(id k1, id o1, id k2, id o2) { @property (retain) A* prop; @end -// CHECK: define void @test_property +// CHECK-LABEL: define void @test_property void test_property(B *b) { // Retain parameter // CHECK: call i8* @objc_retain diff --git a/clang/test/CodeGenObjC/arc-loadweakretained-release.m b/clang/test/CodeGenObjC/arc-loadweakretained-release.m index 00d25fac0db..a84719d606d 100644 --- a/clang/test/CodeGenObjC/arc-loadweakretained-release.m +++ b/clang/test/CodeGenObjC/arc-loadweakretained-release.m @@ -42,7 +42,7 @@ void test1(int cond) { test34_sink(cond ? &weak : 0); } -// CHECK: define void @test1( +// CHECK-LABEL: define void @test1( // CHECK: [[CONDADDR:%.*]] = alloca i32 // CHECK-NEXT: [[WEAK:%.*]] = alloca i8* // CHECK-NEXT: [[INCRTEMP:%.*]] = alloca i8* diff --git a/clang/test/CodeGenObjC/arc-no-arc-exceptions.m b/clang/test/CodeGenObjC/arc-no-arc-exceptions.m index 008c848987e..79043544fd4 100644 --- a/clang/test/CodeGenObjC/arc-no-arc-exceptions.m +++ b/clang/test/CodeGenObjC/arc-no-arc-exceptions.m @@ -8,10 +8,10 @@ void thrower(void); void not(void) __attribute__((nothrow)); -// CHECK: define void @test0( +// CHECK-LABEL: define void @test0( // CHECK: call void @thrower(), !clang.arc.no_objc_arc_exceptions ! // CHECK: call void @not() [[NUW:#[0-9]+]], !clang.arc.no_objc_arc_exceptions ! -// NO-METADATA: define void @test0( +// NO-METADATA-LABEL: define void @test0( // NO-METADATA-NOT: !clang.arc.no_objc_arc_exceptions // NO-METADATA: } void test0(void) { @@ -19,10 +19,10 @@ void test0(void) { not(); } -// CHECK: define void @test1( +// CHECK-LABEL: define void @test1( // CHECK: call void @thrower(), !clang.arc.no_objc_arc_exceptions ! // CHECK: call void @not() [[NUW]], !clang.arc.no_objc_arc_exceptions ! -// NO-METADATA: define void @test1( +// NO-METADATA-LABEL: define void @test1( // NO-METADATA-NOT: !clang.arc.no_objc_arc_exceptions // NO-METADATA: } void test1(id x) { @@ -33,10 +33,10 @@ void test1(id x) { void NSLog(id, ...); -// CHECK: define void @test2( +// CHECK-LABEL: define void @test2( // CHECK: invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring_ to i8*), i32* %{{.*}}) // CHECK: to label %{{.*}} unwind label %{{.*}}, !clang.arc.no_objc_arc_exceptions ! -// NO-METADATA: define void @test2( +// NO-METADATA-LABEL: define void @test2( // NO-METADATA-NOT: !clang.arc.no_objc_arc_exceptions // NO-METADATA: } void test2(void) { @@ -46,10 +46,10 @@ void test2(void) { } } -// CHECK: define void @test3( +// CHECK-LABEL: define void @test3( // CHECK: invoke void %{{.*}}(i8* %{{.*}}) // CHECK: to label %{{.*}} unwind label %{{.*}}, !clang.arc.no_objc_arc_exceptions ! -// NO-METADATA: define void @test3( +// NO-METADATA-LABEL: define void @test3( // NO-METADATA-NOT: !clang.arc.no_objc_arc_exceptions // NO-METADATA: } void test3(void) { @@ -61,10 +61,10 @@ void test3(void) { } } -// CHECK: define void @test4( +// CHECK-LABEL: define void @test4( // CHECK: invoke void %{{.*}}(i8* %{{.*}}) // CHECK: to label %{{.*}} unwind label %{{.*}}, !clang.arc.no_objc_arc_exceptions ! -// NO-METADATA: define void @test4( +// NO-METADATA-LABEL: define void @test4( // NO-METADATA-NOT: !clang.arc.no_objc_arc_exceptions // NO-METADATA: } void test4(void) { diff --git a/clang/test/CodeGenObjC/arc-precise-lifetime.m b/clang/test/CodeGenObjC/arc-precise-lifetime.m index 595a4f9fdf2..cb809a2b781 100644 --- a/clang/test/CodeGenObjC/arc-precise-lifetime.m +++ b/clang/test/CodeGenObjC/arc-precise-lifetime.m @@ -29,7 +29,7 @@ void test0() { @end extern Test1 *test1_helper(void); -// CHECK: define void @test1a() +// CHECK-LABEL: define void @test1a() void test1a(void) { // CHECK: [[T0:%.*]] = call [[TEST1:%.*]]* @test1_helper() // CHECK-NEXT: [[T1:%.*]] = bitcast [[TEST1]]* [[T0]] to i8* @@ -52,7 +52,7 @@ void test1a(void) { char *c = [(ptr) interior]; } -// CHECK: define void @test1b() +// CHECK-LABEL: define void @test1b() void test1b(void) { // CHECK: [[T0:%.*]] = call [[TEST1:%.*]]* @test1_helper() // CHECK-NEXT: [[T1:%.*]] = bitcast [[TEST1]]* [[T0]] to i8* @@ -78,7 +78,7 @@ void test1b(void) { id ivar; } @end -// CHECK: define void @test2( +// CHECK-LABEL: define void @test2( void test2(Test2 *x) { x->ivar = 0; // CHECK: [[X:%.*]] = alloca [[TEST2:%.*]]* @@ -104,7 +104,7 @@ void test2(Test2 *x) { // CHECK-NEXT: ret void } -// CHECK: define void @test3(i8* +// CHECK-LABEL: define void @test3(i8* void test3(PRECISE_LIFETIME id x) { // CHECK: [[X:%.*]] = alloca i8*, // CHECK-NEXT: [[T0:%.*]] = call i8* @objc_retain(i8* {{%.*}}) [[NUW]] diff --git a/clang/test/CodeGenObjC/arc-property.m b/clang/test/CodeGenObjC/arc-property.m index dde02d7dd71..c3c7e2bc11e 100644 --- a/clang/test/CodeGenObjC/arc-property.m +++ b/clang/test/CodeGenObjC/arc-property.m @@ -7,7 +7,7 @@ void test0(Test0 *t0, id value) { t0.value = value; } -// CHECK: define void @test0( +// CHECK-LABEL: define void @test0( // CHECK: call void @objc_storeStrong // CHECK: call void @objc_storeStrong // CHECK: @objc_msgSend diff --git a/clang/test/CodeGenObjC/arc-related-result-type.m b/clang/test/CodeGenObjC/arc-related-result-type.m index e8b97012cdc..72d28718792 100644 --- a/clang/test/CodeGenObjC/arc-related-result-type.m +++ b/clang/test/CodeGenObjC/arc-related-result-type.m @@ -6,7 +6,7 @@ void test0(Test0 *val) { Test0 *x = [val self]; -// CHECK: define void @test0( +// CHECK-LABEL: define void @test0( // CHECK: [[VAL:%.*]] = alloca [[TEST0:%.*]]* // CHECK-NEXT: [[X:%.*]] = alloca [[TEST0]]* // CHECK-NEXT: store [[TEST0]]* null diff --git a/clang/test/CodeGenObjC/arc-ternary-op.m b/clang/test/CodeGenObjC/arc-ternary-op.m index f70e8864a04..217db801941 100644 --- a/clang/test/CodeGenObjC/arc-ternary-op.m +++ b/clang/test/CodeGenObjC/arc-ternary-op.m @@ -3,7 +3,7 @@ void test0(_Bool cond) { id test0_helper(void) __attribute__((ns_returns_retained)); - // CHECK: define void @test0( + // CHECK-LABEL: define void @test0( // CHECK: [[COND:%.*]] = alloca i8, // CHECK-NEXT: [[X:%.*]] = alloca i8*, // CHECK-NEXT: [[RELVAL:%.*]] = alloca i8* @@ -40,7 +40,7 @@ void test1(int cond) { test1_sink(cond ? &strong : 0); test1_sink(cond ? &weak : 0); - // CHECK: define void @test1( + // CHECK-LABEL: define void @test1( // CHECK: [[COND:%.*]] = alloca i32 // CHECK-NEXT: [[STRONG:%.*]] = alloca i8* // CHECK-NEXT: [[WEAK:%.*]] = alloca i8* @@ -106,7 +106,7 @@ void test2(int cond) { for (id obj in cond ? test2_producer() : (void*) 0) { } - // CHECK: define void @test2( + // CHECK-LABEL: define void @test2( // CHECK: [[COND:%.*]] = alloca i32, // CHECK: alloca i8* // CHECK: [[CLEANUP_SAVE:%.*]] = alloca i8* diff --git a/clang/test/CodeGenObjC/arc-unopt.m b/clang/test/CodeGenObjC/arc-unopt.m index 84f5d34b196..c0e67dfd3b0 100644 --- a/clang/test/CodeGenObjC/arc-unopt.m +++ b/clang/test/CodeGenObjC/arc-unopt.m @@ -55,7 +55,7 @@ void test5(void) { if ((x = y)) y = 0; -// CHECK: define void @test5() +// CHECK-LABEL: define void @test5() // CHECK: [[X:%.*]] = alloca [[TEST5:%.*]]*, // CHECK-NEXT: [[Y:%.*]] = alloca [[TEST5:%.*]]*, // CHECK-NEXT: store [[TEST5]]* null, [[TEST5]]** [[X]], diff --git a/clang/test/CodeGenObjC/arc-unoptimized-byref-var.m b/clang/test/CodeGenObjC/arc-unoptimized-byref-var.m index d3189e15d3d..4a30c6af7f1 100644 --- a/clang/test/CodeGenObjC/arc-unoptimized-byref-var.m +++ b/clang/test/CodeGenObjC/arc-unoptimized-byref-var.m @@ -3,7 +3,7 @@ void test19() { __block id x; -// CHECK-UNOPT: define internal void @__Block_byref_object_copy +// CHECK-UNOPT-LABEL: define internal void @__Block_byref_object_copy // CHECK-UNOPT: [[X:%.*]] = getelementptr inbounds [[BYREF_T:%.*]]* [[VAR:%.*]], i32 0, i32 6 // CHECK-UNOPT: [[X2:%.*]] = getelementptr inbounds [[BYREF_T:%.*]]* [[VAR1:%.*]], i32 0, i32 6 // CHECK-UNOPT-NEXT: [[SIX:%.*]] = load i8** [[X2]], align 8 diff --git a/clang/test/CodeGenObjC/arc-with-atthrow.m b/clang/test/CodeGenObjC/arc-with-atthrow.m index 257037679af..e5295159ce5 100644 --- a/clang/test/CodeGenObjC/arc-with-atthrow.m +++ b/clang/test/CodeGenObjC/arc-with-atthrow.m @@ -9,7 +9,7 @@ void test() { // TODO: We should probably emit this specific pattern without the reclaim. -// CHECK: define void @test() +// CHECK-LABEL: define void @test() // CHECK: [[T0:%.*]] = call i8* @make() // CHECK-NEXT: [[T1:%.*]] = call i8* @objc_retainAutoreleasedReturnValue(i8* [[T0]]) // CHECK-NEXT: [[T2:%.*]] = call i8* @objc_autorelease(i8* [[T1]]) diff --git a/clang/test/CodeGenObjC/arc.m b/clang/test/CodeGenObjC/arc.m index 21ff43128cc..00cdb6fcc52 100644 --- a/clang/test/CodeGenObjC/arc.m +++ b/clang/test/CodeGenObjC/arc.m @@ -32,7 +32,7 @@ // ARC-NATIVE: declare i8* @objc_autorelease(i8*) // ARC-NATIVE: declare i8* @objc_retainAutorelease(i8*) -// CHECK: define void @test0 +// CHECK-LABEL: define void @test0 void test0(id x) { // CHECK: [[X:%.*]] = alloca i8* // CHECK-NEXT: [[PARM:%.*]] = call i8* @objc_retain(i8* {{.*}}) @@ -42,7 +42,7 @@ void test0(id x) { // CHECK-NEXT: ret void } -// CHECK: define i8* @test1(i8* +// CHECK-LABEL: define i8* @test1(i8* id test1(id x) { // CHECK: [[X:%.*]] = alloca i8* // CHECK-NEXT: [[Y:%.*]] = alloca i8* @@ -94,7 +94,7 @@ id test1(id x) { - (id) copy; @end -// CHECK: define void @test3_unelided() +// CHECK-LABEL: define void @test3_unelided() void test3_unelided() { extern void test3_helper(void); @@ -125,7 +125,7 @@ void test3_unelided() { // CHECK-NEXT: ret void } -// CHECK: define void @test3() +// CHECK-LABEL: define void @test3() void test3() { // CHECK: [[X:%.*]] = alloca i8* @@ -166,7 +166,7 @@ void test3() { // CHECK-NEXT: ret void } -// CHECK: define i8* @test4() +// CHECK-LABEL: define i8* @test4() id test4() { // Call to +alloc. // CHECK: load {{.*}}* @"\01L_OBJC_CLASSLIST_REFERENCES_ @@ -197,7 +197,7 @@ id test4() { } @end -// CHECK: define void @test5 +// CHECK-LABEL: define void @test5 void test5(Test5 *x, id y) { // Prologue. // CHECK: [[X:%.*]] = alloca [[TEST5:%.*]]*, @@ -241,7 +241,7 @@ void test5(Test5 *x, id y) { } id test6_helper(void) __attribute__((ns_returns_retained)); -// CHECK: define void @test6() +// CHECK-LABEL: define void @test6() void test6() { // CHECK: [[X:%.*]] = alloca i8* // CHECK-NEXT: [[CALL:%.*]] = call i8* @test6_helper() @@ -253,7 +253,7 @@ void test6() { } void test7_helper(id __attribute__((ns_consumed))); -// CHECK: define void @test7() +// CHECK-LABEL: define void @test7() void test7() { // CHECK: [[X:%.*]] = alloca i8* // CHECK-NEXT: store i8* null, i8** [[X]] @@ -284,7 +284,7 @@ void test10() { Test10 *x; id y = x.me.me; - // CHECK: define void @test10() + // CHECK-LABEL: define void @test10() // CHECK: [[X:%.*]] = alloca [[TEST10:%.*]]*, align // CHECK-NEXT: [[Y:%.*]] = alloca i8*, align // CHECK-NEXT: store [[TEST10]]* null, [[TEST10]]** [[X]] @@ -314,7 +314,7 @@ void test10() { } void test11(id (*f)(void) __attribute__((ns_returns_retained))) { - // CHECK: define void @test11( + // CHECK-LABEL: define void @test11( // CHECK: [[F:%.*]] = alloca i8* ()*, align // CHECK-NEXT: [[X:%.*]] = alloca i8*, align // CHECK-NEXT: store i8* ()* {{%.*}}, i8* ()** [[F]], align @@ -330,7 +330,7 @@ void test11(id (*f)(void) __attribute__((ns_returns_retained))) { void test12(void) { extern id test12_helper(void); - // CHECK: define void @test12() + // CHECK-LABEL: define void @test12() // CHECK: [[X:%.*]] = alloca i8*, align // CHECK-NEXT: [[Y:%.*]] = alloca i8*, align @@ -358,7 +358,7 @@ void test12(void) { // Indirect consuming calls. void test13(void) { - // CHECK: define void @test13() + // CHECK-LABEL: define void @test13() // CHECK: [[X:%.*]] = alloca i8*, align // CHECK-NEXT: store i8* null, i8** [[X]], align id x; @@ -458,7 +458,7 @@ void test13(void) { @end void test19() { - // CHECK: define void @test19() + // CHECK-LABEL: define void @test19() // CHECK: [[X:%.*]] = alloca [5 x i8*], align 16 // CHECK: call void @llvm.lifetime.start // CHECK-NEXT: [[T0:%.*]] = bitcast [5 x i8*]* [[X]] to i8* @@ -490,7 +490,7 @@ void test19() { } void test20(unsigned n) { - // CHECK: define void @test20 + // CHECK-LABEL: define void @test20 // CHECK: [[N:%.*]] = alloca i32, align 4 // CHECK-NEXT: [[SAVED_STACK:%.*]] = alloca i8* // CHECK-NEXT: store i32 {{%.*}}, i32* [[N]], align 4 @@ -531,7 +531,7 @@ void test20(unsigned n) { } void test21(unsigned n) { - // CHECK: define void @test21 + // CHECK-LABEL: define void @test21 // CHECK: [[N:%.*]] = alloca i32, align 4 // CHECK-NEXT: [[SAVED_STACK:%.*]] = alloca i8* // CHECK-NEXT: store i32 {{%.*}}, i32* [[N]], align 4 @@ -829,7 +829,7 @@ char *helper; @end __attribute__((ns_returns_retained)) id test32(void) { -// CHECK: define i8* @test32() +// CHECK-LABEL: define i8* @test32() // CHECK: [[CALL:%.*]] = call i8* @test32_helper() // CHECK-NEXT: [[T0:%.*]] = call i8* @objc_retainAutoreleasedReturnValue(i8* [[CALL]]) // CHECK-NEXT: ret i8* [[T0]] @@ -932,7 +932,7 @@ void test33(Test33 *ptr) { } -// CHECK: define void @test36 +// CHECK-LABEL: define void @test36 void test36(id x) { // CHECK: [[X:%.*]] = alloca i8* @@ -960,7 +960,7 @@ void test37(void) { Test37 *var; test37_helper(&var); - // CHECK: define void @test37() + // CHECK-LABEL: define void @test37() // CHECK: [[VAR:%.*]] = alloca [[TEST37:%.*]]*, // CHECK-NEXT: [[TEMP:%.*]] = alloca i8* // CHECK-NEXT: store [[TEST37]]* null, [[TEST37]]** [[VAR]] @@ -1037,7 +1037,7 @@ void test47(void) { extern id test47_helper(void); id x = x = test47_helper(); - // CHECK: define void @test47() + // CHECK-LABEL: define void @test47() // CHECK: [[X:%.*]] = alloca i8* // CHECK-NEXT: store i8* null, i8** [[X]] // CHECK-NEXT: [[CALL:%.*]] = call i8* @test47_helper() @@ -1057,7 +1057,7 @@ void test47(void) { void test48(void) { extern id test48_helper(void); __weak id x = x = test48_helper(); - // CHECK: define void @test48() + // CHECK-LABEL: define void @test48() // CHECK: [[X:%.*]] = alloca i8* // CHECK-NEXT: [[T0:%.*]] = call i8* @objc_initWeak(i8** [[X]], i8* null) // CHECK-NEXT: [[T1:%.*]] = call i8* @test48_helper() @@ -1072,7 +1072,7 @@ void test48(void) { void test49(void) { extern id test49_helper(void); __autoreleasing id x = x = test49_helper(); - // CHECK: define void @test49() + // CHECK-LABEL: define void @test49() // CHECK: [[X:%.*]] = alloca i8* // CHECK-NEXT: store i8* null, i8** [[X]] // CHECK-NEXT: [[CALL:%.*]] = call i8* @test49_helper() @@ -1113,7 +1113,7 @@ id test52(void) { id test52_helper(int) __attribute__((ns_returns_retained)); return ({ int x = 5; test52_helper(x); }); -// CHECK: define i8* @test52() +// CHECK-LABEL: define i8* @test52() // CHECK: [[X:%.*]] = alloca i32 // CHECK-NEXT: [[TMPALLOCA:%.*]] = alloca i8* // CHECK-NEXT: store i32 5, i32* [[X]], @@ -1130,7 +1130,7 @@ void test53(void) { id test53_helper(void); id x = ({ id y = test53_helper(); y; }); (void) x; -// CHECK: define void @test53() +// CHECK-LABEL: define void @test53() // CHECK: [[X:%.*]] = alloca i8*, // CHECK-NEXT: [[Y:%.*]] = alloca i8*, // CHECK-NEXT: [[TMPALLOCA:%.*]] = alloca i8*, @@ -1151,7 +1151,7 @@ void test53(void) { } // <rdar://problem/9758798> -// CHECK: define void @test54(i32 %first, ...) +// CHECK-LABEL: define void @test54(i32 %first, ...) void test54(int first, ...) { __builtin_va_list arglist; // CHECK: call void @llvm.va_start @@ -1191,7 +1191,7 @@ void test54(int first, ...) { @end void test56_test(void) { id x = [Test56 make]; - // CHECK: define void @test56_test() + // CHECK-LABEL: define void @test56_test() // CHECK: [[X:%.*]] = alloca i8*, align 8 // CHECK: [[T0:%.*]] = call i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*)*)( // CHECK-NEXT: store i8* [[T0]], i8** [[X]] @@ -1245,7 +1245,7 @@ void test59(void) { test59_body(); } - // CHECK: define void @test59() + // CHECK-LABEL: define void @test59() // CHECK: [[T0:%.*]] = call i8* @test59_getlock() // CHECK-NEXT: [[T1:%.*]] = call i8* @objc_retainAutoreleasedReturnValue(i8* [[T0]]) // CHECK-NEXT: call i32 @objc_sync_enter(i8* [[T1]]) @@ -1263,7 +1263,7 @@ void test59(void) { - (id) test61_id; @end void test61(void) { - // CHECK: define void @test61() + // CHECK-LABEL: define void @test61() // CHECK: [[Y:%.*]] = alloca i8*, align 8 extern id test61_make(void); @@ -1293,7 +1293,7 @@ void test61(void) { // rdar://problem/9891815 void test62(void) { - // CHECK: define void @test62() + // CHECK-LABEL: define void @test62() // CHECK: [[I:%.*]] = alloca i32, align 4 // CHECK-NEXT: [[CLEANUP_VALUE:%.*]] = alloca i8* // CHECK-NEXT: [[CLEANUP_REQUIRED:%.*]] = alloca i1 @@ -1365,7 +1365,7 @@ void test66(void) { extern id test66_arg(void); [test66_receiver() consume: test66_arg()]; } -// CHECK: define void @test66() +// CHECK-LABEL: define void @test66() // CHECK: [[T0:%.*]] = call [[TEST66:%.*]]* @test66_receiver() // CHECK-NEXT: [[T1:%.*]] = bitcast [[TEST66]]* [[T0]] to i8* // CHECK-NEXT: [[T2:%.*]] = call i8* @objc_retainAutoreleasedReturnValue(i8* [[T1]]) @@ -1389,7 +1389,7 @@ Class test67_helper(void); void test67(void) { Class cl = test67_helper(); } -// CHECK: define void @test67() +// CHECK-LABEL: define void @test67() // CHECK: [[CL:%.*]] = alloca i8*, align 8 // CHECK-NEXT: [[T0:%.*]] = call i8* @test67_helper() // CHECK-NEXT: store i8* [[T0]], i8** [[CL]], align 8 @@ -1399,7 +1399,7 @@ Class test68_helper(void); void test68(void) { __strong Class cl = test67_helper(); } -// CHECK: define void @test68() +// CHECK-LABEL: define void @test68() // CHECK: [[CL:%.*]] = alloca i8*, align 8 // CHECK-NEXT: [[T0:%.*]] = call i8* @test67_helper() // CHECK-NEXT: [[T1:%.*]] = call i8* @objc_retainAutoreleasedReturnValue(i8* [[T0]]) @@ -1421,7 +1421,7 @@ void test68(void) { // rdar://problem/10907547 void test70(id i) { - // CHECK: define void @test70 + // CHECK-LABEL: define void @test70 // CHECK: store i8* null, i8** // CHECK: store i8* null, i8** // CHECK: [[ID:%.*]] = call i8* @objc_retain(i8* diff --git a/clang/test/CodeGenObjC/assign.m b/clang/test/CodeGenObjC/assign.m index bdc99c63583..7d0c06f7435 100644 --- a/clang/test/CodeGenObjC/assign.m +++ b/clang/test/CodeGenObjC/assign.m @@ -12,7 +12,7 @@ struct s0 { // Check that we get exactly the message sends we expect, and no more. // -// CHECK: define void @f0 +// CHECK-LABEL: define void @f0 void f0(C0 *a) { // CHECK: objc_msgSend int l0 = (a.x0 = 1); diff --git a/clang/test/CodeGenObjC/autorelease.m b/clang/test/CodeGenObjC/autorelease.m index f89b81a8acb..4b810172012 100644 --- a/clang/test/CodeGenObjC/autorelease.m +++ b/clang/test/CodeGenObjC/autorelease.m @@ -39,7 +39,7 @@ int tryTo(int (*f)(void)) { return 0; } } -// CHECK: define i32 @tryTo(i32 ()* +// CHECK-LABEL: define i32 @tryTo(i32 ()* // CHECK: [[RET:%.*]] = alloca i32, // CHECK: [[T0:%.*]] = call i8* @objc_autoreleasePoolPush() // CHECK-NEXT: [[T1:%.*]] = load i32 ()** {{%.*}}, diff --git a/clang/test/CodeGenObjC/bitfield-access.m b/clang/test/CodeGenObjC/bitfield-access.m index 597fe356794..2b8039df9ec 100644 --- a/clang/test/CodeGenObjC/bitfield-access.m +++ b/clang/test/CodeGenObjC/bitfield-access.m @@ -14,7 +14,7 @@ // Check that we don't try to use an i32 load here, which would reach beyond the // end of the structure. // -// CHECK-I386: define i32 @f0( +// CHECK-I386-LABEL: define i32 @f0( // CHECK-I386: [[t0_0:%.*]] = load i8* {{.*}}, align 1 // CHECK-I386: lshr i8 [[t0_0]], 7 // CHECK-I386: } @@ -24,7 +24,7 @@ int f0(I0 *a) { // Check that we can handled straddled loads. // -// CHECK-ARM: define i32 @f1( +// CHECK-ARM-LABEL: define i32 @f1( // CHECK-ARM: [[t1_ptr:%.*]] = getelementptr // CHECK-ARM: [[t1_base:%.*]] = bitcast i8* [[t1_ptr]] to i40* // CHECK-ARM: [[t1_0:%.*]] = load i40* [[t1_base]], align 1 diff --git a/clang/test/CodeGenObjC/block-6.m b/clang/test/CodeGenObjC/block-6.m index 57b9ea3fa6e..b04b1893191 100644 --- a/clang/test/CodeGenObjC/block-6.m +++ b/clang/test/CodeGenObjC/block-6.m @@ -2,7 +2,7 @@ // rdar://8893785 void MYFUNC() { -// CHECK: define void @MYFUNC() +// CHECK-LABEL: define void @MYFUNC() // CHECK: [[OBSERVER_SLOT:%.*]] = alloca [[OBSERVER_T:%.*]], align 8 // CHECK: [[T0:%.*]] = getelementptr inbounds [[OBSERVER_T]]* [[OBSERVER_SLOT]], i32 0, i32 1 diff --git a/clang/test/CodeGenObjC/blocks.m b/clang/test/CodeGenObjC/blocks.m index d872e17051b..5245679dd42 100644 --- a/clang/test/CodeGenObjC/blocks.m +++ b/clang/test/CodeGenObjC/blocks.m @@ -43,7 +43,7 @@ void foo(T *P) { @interface Test2 -(void) destroy; @end void test2(Test2 *x) { extern void test2_helper(void (^)(void)); - // CHECK: define void @test2( + // CHECK-LABEL: define void @test2( // CHECK: [[X:%.*]] = alloca [[TEST2:%.*]]*, // CHECK-NEXT: [[WEAKX:%.*]] = alloca [[WEAK_T:%.*]], // CHECK-NEXT: [[BLOCK:%.*]] = alloca [[BLOCK_T:<{.*}>]], @@ -91,7 +91,7 @@ void test2(Test2 *x) { // rdar://problem/9124263 // In the test above, check that the use in the invocation function // doesn't require a read barrier. -// CHECK: define internal void @__test2_block_invoke +// CHECK-LABEL: define internal void @__test2_block_invoke // CHECK: [[BLOCK:%.*]] = bitcast i8* {{%.*}} to [[BLOCK_T]]* // CHECK-NOT: bitcast // CHECK: [[T0:%.*]] = getelementptr inbounds [[BLOCK_T]]* [[BLOCK]], i32 0, i32 5 @@ -107,7 +107,7 @@ void test2(Test2 *x) { void test3(void (^block)(int, ...)) { block(0, 1, 2, 3); } -// CHECK: define void @test3( +// CHECK-LABEL: define void @test3( // CHECK: [[BLOCK:%.*]] = alloca void (i32, ...)*, align 4 // CHECK-NEXT: store void (i32, ...)* // CHECK-NEXT: [[T0:%.*]] = load void (i32, ...)** [[BLOCK]], align 4 @@ -122,7 +122,7 @@ void test3(void (^block)(int, ...)) { void test4(void (^block)()) { block(0, 1, 2, 3); } -// CHECK: define void @test4( +// CHECK-LABEL: define void @test4( // CHECK: [[BLOCK:%.*]] = alloca void (...)*, align 4 // CHECK-NEXT: store void (...)* // CHECK-NEXT: [[T0:%.*]] = load void (...)** [[BLOCK]], align 4 diff --git a/clang/test/CodeGenObjC/builtins.m b/clang/test/CodeGenObjC/builtins.m index 0c5744805e6..37d8c7a3e95 100644 --- a/clang/test/CodeGenObjC/builtins.m +++ b/clang/test/CodeGenObjC/builtins.m @@ -3,5 +3,5 @@ void test0(id receiver, SEL sel, const char *str) { short s = ((short (*)(id, SEL, const char*)) objc_msgSend)(receiver, sel, str); } -// CHECK: define void @test0( +// CHECK-LABEL: define void @test0( // CHECK: call signext i16 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i16 (i8*, i8*, i8*)*)( diff --git a/clang/test/CodeGenObjC/exceptions-nonfragile.m b/clang/test/CodeGenObjC/exceptions-nonfragile.m index 1f389269983..212a1eedd45 100644 --- a/clang/test/CodeGenObjC/exceptions-nonfragile.m +++ b/clang/test/CodeGenObjC/exceptions-nonfragile.m @@ -26,6 +26,6 @@ void test2(void) { test2_helper(); } - // CHECK: define void @test2() + // CHECK-LABEL: define void @test2() // CHECK-NOT: call void @test2_helper() } diff --git a/clang/test/CodeGenObjC/exceptions.m b/clang/test/CodeGenObjC/exceptions.m index 408b94d385f..92f68292fff 100644 --- a/clang/test/CodeGenObjC/exceptions.m +++ b/clang/test/CodeGenObjC/exceptions.m @@ -14,7 +14,7 @@ void f0() { } } -// CHECK: define void @f1() +// CHECK-LABEL: define void @f1() void f1() { extern void foo(void); @@ -40,7 +40,7 @@ void f1() { // Test that modifications to local variables are respected under // optimization. rdar://problem/8160285 -// CHECK: define i32 @f2() +// CHECK-LABEL: define i32 @f2() int f2() { extern void foo(void); @@ -77,7 +77,7 @@ int f2() { // Test that the cleanup destination is saved when entering a finally // block. rdar://problem/8293901 -// CHECK: define void @f3() +// CHECK-LABEL: define void @f3() void f3() { extern void f3_helper(int, int*); @@ -130,7 +130,7 @@ void f3() { void f4() { extern void f4_help(int); - // CHECK: define void @f4() + // CHECK-LABEL: define void @f4() // CHECK: [[EXNDATA:%.*]] = alloca [[EXNDATA_T:%.*]], align // CHECK: call void @objc_exception_try_enter([[EXNDATA_T]]* [[EXNDATA]]) // CHECK: call i32 @_setjmp diff --git a/clang/test/CodeGenObjC/fp2ret.m b/clang/test/CodeGenObjC/fp2ret.m index 2e65332ec97..5f7c76d6cdd 100644 --- a/clang/test/CodeGenObjC/fp2ret.m +++ b/clang/test/CodeGenObjC/fp2ret.m @@ -12,15 +12,15 @@ @end -// CHECK-X86_32: define void @t0() +// CHECK-X86_32-LABEL: define void @t0() // CHECK-X86_32: call void bitcast {{.*}} @objc_msgSend_stret to // CHECK-X86_32: } // -// CHECK-X86_64: define void @t0() +// CHECK-X86_64-LABEL: define void @t0() // CHECK-X86_64: call { x86_fp80, x86_fp80 } bitcast {{.*}} @objc_msgSend_fp2ret to // CHECK-X86_64: } // -// CHECK-ARMV7: define void @t0() +// CHECK-ARMV7-LABEL: define void @t0() // CHECK-ARMV7: call i128 bitcast {{.*}} @objc_msgSend to // CHECK-ARMV7: } void t0() { diff --git a/clang/test/CodeGenObjC/fpret.m b/clang/test/CodeGenObjC/fpret.m index cabef108df4..7fe550177d4 100644 --- a/clang/test/CodeGenObjC/fpret.m +++ b/clang/test/CodeGenObjC/fpret.m @@ -14,19 +14,19 @@ @end -// CHECK-X86_32: define void @t0() +// CHECK-X86_32-LABEL: define void @t0() // CHECK-X86_32: call float bitcast {{.*}} @objc_msgSend_fpret to // CHECK-X86_32: call double bitcast {{.*}} @objc_msgSend_fpret to // CHECK-X86_32: call x86_fp80 bitcast {{.*}} @objc_msgSend_fpret to // CHECK-X86_32: } // -// CHECK-X86_64: define void @t0() +// CHECK-X86_64-LABEL: define void @t0() // CHECK-X86_64: call float bitcast {{.*}} @objc_msgSend to // CHECK-X86_64: call double bitcast {{.*}} @objc_msgSend to // CHECK-X86_64: call x86_fp80 bitcast {{.*}} @objc_msgSend_fpret to // CHECK-X86_64: } // -// CHECK-ARMV7: define void @t0() +// CHECK-ARMV7-LABEL: define void @t0() // CHECK-ARMV7: call float bitcast {{.*}} @objc_msgSend to // CHECK-ARMV7: call double bitcast {{.*}} @objc_msgSend to // CHECK-ARMV7: call double bitcast {{.*}} @objc_msgSend to diff --git a/clang/test/CodeGenObjC/gc.m b/clang/test/CodeGenObjC/gc.m index ce2611ecf8a..729cf107a90 100644 --- a/clang/test/CodeGenObjC/gc.m +++ b/clang/test/CodeGenObjC/gc.m @@ -4,7 +4,7 @@ void test0(void) { extern id test0_helper(void); __attribute__((objc_precise_lifetime)) id x = test0_helper(); test0_helper(); - // CHECK: define void @test0() + // CHECK-LABEL: define void @test0() // CHECK: [[T0:%.*]] = call i8* @test0_helper() // CHECK-NEXT: store i8* [[T0]], i8** [[X:%.*]], align 8 // CHECK-NEXT: call i8* @test0_helper() diff --git a/clang/test/CodeGenObjC/ivar-invariant.m b/clang/test/CodeGenObjC/ivar-invariant.m index 7cafee70073..ef17ffc12f7 100644 --- a/clang/test/CodeGenObjC/ivar-invariant.m +++ b/clang/test/CodeGenObjC/ivar-invariant.m @@ -40,7 +40,7 @@ void * variant_load_1(int i) { return ptr; } -// CHECK: define i8* @variant_load_1(i32 %i) +// CHECK-LABEL: define i8* @variant_load_1(i32 %i) // CHECK: [[IVAR:%.*]] = load i64* @"OBJC_IVAR_$_Derived.member"{{$}} @interface Container : Derived @end @@ -61,7 +61,7 @@ void * variant_load_1(int i) { } @end -// CHECK: define internal i8* @block_block_invoke +// CHECK-LABEL: define internal i8* @block_block_invoke // CHECK: load i64* @"OBJC_IVAR_$_ForBlock.foo" id (^block)(ForBlock*) = ^(ForBlock* a) { return a->foo; diff --git a/clang/test/CodeGenObjC/ns_consume_null_check.m b/clang/test/CodeGenObjC/ns_consume_null_check.m index 6a31a808f4c..d4502ec0426 100644 --- a/clang/test/CodeGenObjC/ns_consume_null_check.m +++ b/clang/test/CodeGenObjC/ns_consume_null_check.m @@ -16,7 +16,7 @@ void test0(void) { id obj = [NSObject new]; [x isEqual : obj]; } -// CHECK: define void @test0() +// CHECK-LABEL: define void @test0() // CHECK: [[FIVE:%.*]] = call i8* @objc_retain // CHECK-NEXT: [[SIX:%.*]] = bitcast // CHECK-NEXT: [[SEVEN:%.*]] = icmp eq i8* [[SIX]], null @@ -36,7 +36,7 @@ void test1(void) { __weak id weakObj = obj; _Complex float result = [x asComplexWithArg: obj]; } -// CHECK: define void @test1() +// CHECK-LABEL: define void @test1() // CHECK: [[OBJ:%.*]] = alloca i8*, align 8 // CHECK-NEXT: [[WEAKOBJ:%.*]] = alloca i8*, align 8 // CHECK-NEXT: [[RESULT:%.*]] = alloca { float, float }, align 4 diff --git a/clang/test/CodeGenObjC/objc2-legacy-dispatch.m b/clang/test/CodeGenObjC/objc2-legacy-dispatch.m index a6b20000d80..aa944f89519 100644 --- a/clang/test/CodeGenObjC/objc2-legacy-dispatch.m +++ b/clang/test/CodeGenObjC/objc2-legacy-dispatch.m @@ -1,15 +1,15 @@ // RUN: %clang_cc1 -fobjc-dispatch-method=mixed -triple i386-apple-darwin10 -emit-llvm -o - %s | FileCheck -check-prefix=CHECK_NEW_DISPATCH %s // -// CHECK_NEW_DISPATCH: define void @f0 +// CHECK_NEW_DISPATCH-LABEL: define void @f0 // CHECK_NEW_DISPATCH: bitcast {{.*}}objc_msgSend_fixup_alloc -// CHECK_NEW_DISPATCH: define void @f1 +// CHECK_NEW_DISPATCH-LABEL: define void @f1 // CHECK_NEW_DISPATCH: load {{.*}}OBJC_SELECTOR_REFERENCES // // RUN: %clang_cc1 -fobjc-dispatch-method=legacy -emit-llvm -o - %s | FileCheck -check-prefix=CHECK_OLD_DISPATCH %s // -// CHECK_OLD_DISPATCH: define void @f0 +// CHECK_OLD_DISPATCH-LABEL: define void @f0 // CHECK_OLD_DISPATCH: load {{.*}}OBJC_SELECTOR_REFERENCES -// CHECK_OLD_DISPATCH: define void @f1 +// CHECK_OLD_DISPATCH-LABEL: define void @f1 // CHECK_OLD_DISPATCH: load {{.*}}OBJC_SELECTOR_REFERENCES @interface A diff --git a/clang/test/CodeGenObjC/objfw.m b/clang/test/CodeGenObjC/objfw.m index 98e3fb02652..8e72867fcde 100644 --- a/clang/test/CodeGenObjC/objfw.m +++ b/clang/test/CodeGenObjC/objfw.m @@ -8,7 +8,7 @@ void test0(void) { [Test0 test]; } -// CHECK: define void @test0() +// CHECK-LABEL: define void @test0() // CHECK: [[T0:%.*]] = call i8* (i8*, i8*, ...)* (i8*, i8*)* @objc_msg_lookup(i8* bitcast (i64* @_OBJC_CLASS_Test0 to i8*), // CHECK-NEXT: [[T1:%.*]] = bitcast i8* (i8*, i8*, ...)* [[T0]] to void (i8*, i8*)* // CHECK-NEXT: call void [[T1]](i8* bitcast (i64* @_OBJC_CLASS_Test0 to i8*), diff --git a/clang/test/CodeGenObjC/property.m b/clang/test/CodeGenObjC/property.m index 6a438268c78..e156270f66f 100644 --- a/clang/test/CodeGenObjC/property.m +++ b/clang/test/CodeGenObjC/property.m @@ -54,7 +54,7 @@ int printf(const char *, ...); @end // Test that compound operations only compute the base once. -// CHECK: define void @test2 +// CHECK-LABEL: define void @test2 A *test2_helper(void); void test2() { // CHECK: [[BASE:%.*]] = call [[A:%.*]]* @test2_helper() @@ -94,7 +94,7 @@ void test3(test3_object *p) { @interface Test4 {} @property float f; @end -// CHECK: define void @test4 +// CHECK-LABEL: define void @test4 void test4(Test4 *t) { extern int test4_printf(const char *, ...); // CHECK: [[TMP:%.*]] = call float {{.*}} @objc_msgSend diff --git a/clang/test/CodeGenObjC/related-result-type.m b/clang/test/CodeGenObjC/related-result-type.m index ef38661f94c..cd784742181 100644 --- a/clang/test/CodeGenObjC/related-result-type.m +++ b/clang/test/CodeGenObjC/related-result-type.m @@ -9,7 +9,7 @@ @interface NSString : NSObject @end -// CHECK: define void @test1() +// CHECK-LABEL: define void @test1() void test1() { // CHECK: {{call.*@objc_msgSend}} // CHECK: {{call.*@objc_msgSend}} @@ -18,7 +18,7 @@ void test1() { NSString *str1 = [[[NSString alloc] init] retain]; } -// CHECK: define void @test2() +// CHECK-LABEL: define void @test2() void test2() { // CHECK: {{call.*@objc_msgSend}} // CHECK: {{call.*@objc_msgSend}} diff --git a/clang/test/CodeGenObjC/stret_lookup.m b/clang/test/CodeGenObjC/stret_lookup.m index 89d184cd6b6..3f7303d4adc 100644 --- a/clang/test/CodeGenObjC/stret_lookup.m +++ b/clang/test/CodeGenObjC/stret_lookup.m @@ -18,12 +18,12 @@ void test0(void) { (void)t; } -// HASSTRET: define void @test0() +// HASSTRET-LABEL: define void @test0() // HASSTRET: [[T0:%.*]] = call i8* (i8*, i8*, ...)* (i8*, i8*)* @objc_msg_lookup_stret(i8* bitcast (i64* @_OBJC_CLASS_Test0 to i8*), // HASSTRET-NEXT: [[T1:%.*]] = bitcast i8* (i8*, i8*, ...)* [[T0]] to void (%struct.test*, i8*, i8*)* // HASSTRET-NEXT: call void [[T1]](%struct.test* sret {{.*}}, i8* bitcast (i64* @_OBJC_CLASS_Test0 to i8*), -// NOSTRET: define void @test0() +// NOSTRET-LABEL: define void @test0() // NOSTRET: [[T0:%.*]] = call i8* (i8*, i8*, ...)* (i8*, i8*)* @objc_msg_lookup(i8* // NOSTRET-NEXT: [[T1:%.*]] = bitcast i8* (i8*, i8*, ...)* [[T0]] to void (%struct.test*, i8*, i8*)* // NOSTRET-NEXT: call void [[T1]](%struct.test* sret {{.*}}, i8* {{.*}}, i8* bitcast ([2 x { i8*, i8* }]* diff --git a/clang/test/CodeGenObjC/synchronized.m b/clang/test/CodeGenObjC/synchronized.m index e927882b3f7..015e55b8f8a 100644 --- a/clang/test/CodeGenObjC/synchronized.m +++ b/clang/test/CodeGenObjC/synchronized.m @@ -20,7 +20,7 @@ @end -// CHECK: define void @foo( +// CHECK-LABEL: define void @foo( void foo(id a) { // CHECK: [[A:%.*]] = alloca i8* // CHECK: [[SYNC:%.*]] = alloca i8* @@ -47,7 +47,7 @@ void foo(id a) { } -// CHECK: define i32 @f0( +// CHECK-LABEL: define i32 @f0( int f0(id a) { // TODO: we can optimize the ret to a constant if we can figure out // either that x isn't stored to within the synchronized block or @@ -64,7 +64,7 @@ int f0(id a) { return x; } -// CHECK: define void @f1( +// CHECK-LABEL: define void @f1( void f1(id a) { // Check that the return doesn't go through the cleanup. extern void opaque(void); diff --git a/clang/test/CodeGenObjC/tentative-cfconstantstring.m b/clang/test/CodeGenObjC/tentative-cfconstantstring.m index b7e1c4601fe..714c1a40233 100644 --- a/clang/test/CodeGenObjC/tentative-cfconstantstring.m +++ b/clang/test/CodeGenObjC/tentative-cfconstantstring.m @@ -34,7 +34,7 @@ static inline void _inlineFunction() { // CHECK: @__CFConstantStringClassReference = common global [24 x i32] zeroinitializer, align 16 // CHECK: @_unnamed_cfstring_{{.*}} = private constant %struct.NSConstantString { i32* getelementptr inbounds ([24 x i32]* @__CFConstantStringClassReference, i32 0, i32 0) -// CHECK: define internal void @_inlineFunction() +// CHECK-LABEL: define internal void @_inlineFunction() // CHECK: [[ZERO:%.*]] = load %struct._class_t** @"\01L_OBJC_CLASSLIST_REFERENCES_ // CHECK-NEXT: [[ONE:%.*]] = load i8** @"\01L_OBJC_SELECTOR_REFERENCES_" // CHECK-NEXT: [[TWO:%.*]] = bitcast %struct._class_t* [[ZERO]] to i8* diff --git a/clang/test/CodeGenObjC/terminate.m b/clang/test/CodeGenObjC/terminate.m index 8728ec4598b..4992b998b39 100644 --- a/clang/test/CodeGenObjC/terminate.m +++ b/clang/test/CodeGenObjC/terminate.m @@ -9,7 +9,7 @@ void test0(void) { void *ptr __attribute__((cleanup(destroy))); test0_helper(); - // CHECK-WITH: define void @test0() + // CHECK-WITH-LABEL: define void @test0() // CHECK-WITH: [[PTR:%.*]] = alloca i8*, // CHECK-WITH: call void @destroy(i8** [[PTR]]) // CHECK-WITH-NEXT: ret void @@ -18,7 +18,7 @@ void test0(void) { // CHECK-WITH-NEXT: catch i8* null // CHECK-WITH-NEXT: call void @objc_terminate() - // CHECK-WITHOUT: define void @test0() + // CHECK-WITHOUT-LABEL: define void @test0() // CHECK-WITHOUT: [[PTR:%.*]] = alloca i8*, // CHECK-WITHOUT: call void @destroy(i8** [[PTR]]) // CHECK-WITHOUT-NEXT: ret void diff --git a/clang/test/CodeGenObjC/x86_64-struct-return-gc.m b/clang/test/CodeGenObjC/x86_64-struct-return-gc.m index dab5b15e284..9cb4b134e67 100644 --- a/clang/test/CodeGenObjC/x86_64-struct-return-gc.m +++ b/clang/test/CodeGenObjC/x86_64-struct-return-gc.m @@ -5,7 +5,7 @@ struct Coerce { struct Coerce coerce_func(void); -// CHECK: define void @Coerce_test() +// CHECK-LABEL: define void @Coerce_test() void Coerce_test(void) { struct Coerce c; @@ -21,7 +21,7 @@ struct Indirect { struct Indirect indirect_func(void); -// CHECK: define void @Indirect_test() +// CHECK-LABEL: define void @Indirect_test() void Indirect_test(void) { struct Indirect i; |

