brintos

brintos / llvm-project-archived public Read only

0
0
Text · 831 B · 8c1ddac Raw
30 lines · c
1// RUN: %clang_cc1 %s -triple x86_64-linux -emit-llvm -fblocks -o - | FileCheck %s2 3// These will be inlined by the optimizers provided the block descriptors4// and block literals are internal constants.5// CHECK: @__block_descriptor_tmp = internal constant6// CHECK: @__block_literal_global = internal constant7// CHECK: @__block_descriptor_tmp.2 = internal constant8// CHECK: @__block_literal_global.3 = internal constant9static int fun(int x) {10	return x+1;11}12 13static int block(int x) {14	return (^(int x){return x+1;})(x);15}16 17extern int printf(const char *, ...);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