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 10static int fun(int x) { 11 return x+1; 12} 13 14static int block(int x) { 15 return (^(int x){return x+1;})(x); 16} 17 18static void print(int result) { 19 printf("%d\n", result); 20} 21 22int 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