brintos

brintos / llvm-project-archived public Read only

0
0
Text · 799 B · f3d5f4d Raw
36 lines · plain
1// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -emit-llvm -fblocks -fobjc-arc -o - %s | FileCheck %s2 3// CHECK-LABEL: define{{.*}} ptr @_Z4foo1i(4// CHECK: %[[CALL:[a-z0-9]+]] = call noundef ptr @_Z4foo0i5// CHECK: ret ptr %[[CALL]]6 7// CHECK-LABEL: define{{.*}} ptr @_ZN2S22m1Ev(8// CHECK: %[[CALL:[a-z0-9]+]] = call noundef ptr @_Z4foo0i9// CHECK: ret ptr %[[CALL]]10 11// CHECK-LABEL: define internal noundef ptr @Block1_block_invoke(12// CHECK: %[[CALL:[a-z0-9]+]] = call noundef ptr @_Z4foo0i13// CHECK: ret ptr %[[CALL]]14 15struct S1;16 17typedef __attribute__((NSObject)) struct __attribute__((objc_bridge(id))) S1 * S1Ref;18 19S1Ref foo0(int);20 21struct S2 {22  S1Ref m1();23};24 25S1Ref foo1(int a) {26  return foo0(a);27}28 29S1Ref S2::m1() {30  return foo0(0);31}32 33S1Ref (^Block1)(void) = ^{34  return foo0(0);35};36