diff options
| -rw-r--r-- | clang/test/CodeGen/mangle-blocks.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/clang/test/CodeGen/mangle-blocks.c b/clang/test/CodeGen/mangle-blocks.c index 90328425c95..c5e08e9dd5b 100644 --- a/clang/test/CodeGen/mangle-blocks.c +++ b/clang/test/CodeGen/mangle-blocks.c @@ -2,10 +2,13 @@ void __assert_rtn(const char *, const char *, int, const char *) __attribute__ (( noreturn )); -void invoke(void (^)(void)); -void mangle(void) { - invoke(^{ invoke(^{ __assert_rtn(__func__, __FILE__, __LINE__, "mangle"); }); }); +void (^mangle(void))(void) { + return ^{ + void (^block)(void) = ^{ + __assert_rtn(__func__, __FILE__, __LINE__, "mangle"); + }; + }; } // CHECK: @__func__.__mangle_block_invoke_2 = private unnamed_addr constant [24 x i8] c"__mangle_block_invoke_2\00", align 1 @@ -15,6 +18,6 @@ void mangle(void) { // CHECK: define internal void @__mangle_block_invoke(i8* %.block_descriptor) // CHECK: define internal void @__mangle_block_invoke_2(i8* %.block_descriptor){{.*}}{ -// CHECK: call void @__assert_rtn(i8* getelementptr inbounds ([24 x i8]* @__func__.__mangle_block_invoke_2, i32 0, i32 0), i8* getelementptr inbounds {{.*}}, i32 8, i8* getelementptr inbounds ([7 x i8]* @.str1, i32 0, i32 0)) +// CHECK: call void @__assert_rtn(i8* getelementptr inbounds ([24 x i8]* @__func__.__mangle_block_invoke_2, i32 0, i32 0), i8* getelementptr inbounds {{.*}}, i32 9, i8* getelementptr inbounds ([7 x i8]* @.str1, i32 0, i32 0)) // CHECK: } |

