1 // RUN: %clang_cc1 %s -emit-llvm -fblocks -o - | FileCheck %s 2 // rdar://5865221 3 4 // These will be inlined by the optimizers provided the block descriptors 5 // and block literals are internal constants. 6 // CHECK: @__block_descriptor_tmp = internal constant 7 // CHECK: @__block_literal_global = internal constant 8 // CHECK: @__block_descriptor_tmp1 = internal constant 9 // CHECK: @__block_literal_global2 = internal constant 10 static int fun(int x) { 11 return x+1; 12 } 13 14 static int block(int x) { 15 return (^(int x){return x+1;})(x); 16 } 17 18 static void print(int result) { 19 printf("%d\n", result); 20 } 21 22 int main (int argc, const char * argv[]) { 23 int x = argc-1; 24 print(fun(x)); 25 print(block(x)); 26 int (^block_inline)(int) = ^(int x){return x+1;}; 27 print(block_inline(x)); 28 return 0; 29 } 30