1// RUN: %clang_cc1 -fobjc-runtime=macosx-fragile-10.5 -emit-llvm -o - %s | FileCheck %s -check-prefix=CHECK-MAC 2// RUN: %clang_cc1 -emit-llvm -o - %s | FileCheck %s -check-prefix=CHECK-MAC-NF 3// RUN: %clang_cc1 -fobjc-runtime=gcc -emit-llvm -o - %s | FileCheck %s -check-prefix=CHECK-GNU 4// RUN: %clang_cc1 -fobjc-runtime=gnustep -emit-llvm -o - %s | FileCheck %s -check-prefix=CHECK-GNU-NF 5// RUN: %clang_cc1 -fobjc-runtime=gnustep-2.2 -fobjc-dispatch-method=non-legacy -emit-llvm -o - %s | FileCheck %s -check-prefix=CHECK-MAC 6 7typedef struct { 8 int x; 9 int y; 10 int z[10]; 11} MyPoint; 12 13void f0(id a) { 14 int i; 15 MyPoint pt = { 1, 2}; 16 17 // CHECK-MAC: call {{.*}} @objc_msgSend 18 // CHECK-MAC-NF: call {{.*}} @objc_msgSend 19 // CHECK-GNU: call {{.*}} @objc_msg_lookup( 20 // CHECK-GNU-NF: call {{.*}} @objc_msg_lookup_sender( 21 [a print0]; 22 23 // CHECK-MAC: call {{.*}} @objc_msgSend 24 // CHECK-MAC-NF: call {{.*}} @objc_msgSend 25 // CHECK-GNU: call {{.*}} @objc_msg_lookup( 26 // CHECK-GNU-NF: call {{.*}} @objc_msg_lookup_sender( 27 [a print1: 10]; 28 29 // CHECK-MAC: call {{.*}} @objc_msgSend 30 // CHECK-MAC-NF: call {{.*}} @objc_msgSend 31 // CHECK-GNU: call {{.*}} @objc_msg_lookup( 32 // CHECK-GNU-NF: call {{.*}} @objc_msg_lookup_sender( 33 [a print2: 10 and: "hello" and: 2.2]; 34 35 // CHECK-MAC: call {{.*}} @objc_msgSend 36 // CHECK-MAC-NF: call {{.*}} @objc_msgSend 37 // CHECK-GNU: call {{.*}} @objc_msg_lookup( 38 // CHECK-GNU-NF: call {{.*}} @objc_msg_lookup_sender( 39 [a takeStruct: pt ]; 40 41 void *s = @selector(print0); 42 for (i=0; i<2; ++i) 43 // CHECK-MAC: call {{.*}} @objc_msgSend 44 // CHECK-MAC-NF: call {{.*}} @objc_msgSend 45 // CHECK-GNU: call {{.*}} @objc_msg_lookup( 46 // CHECK-GNU-NF: call {{.*}} @objc_msg_lookup_sender( 47 [a performSelector:s]; 48} 49