49 lines · plain
1// RUN: %clang_cc1 -fobjc-runtime=macosx-fragile-10.5 -emit-llvm -o - %s | FileCheck %s -check-prefix=CHECK-MAC2// RUN: %clang_cc1 -emit-llvm -o - %s | FileCheck %s -check-prefix=CHECK-MAC-NF3// RUN: %clang_cc1 -fobjc-runtime=gcc -emit-llvm -o - %s | FileCheck %s -check-prefix=CHECK-GNU4// RUN: %clang_cc1 -fobjc-runtime=gnustep -emit-llvm -o - %s | FileCheck %s -check-prefix=CHECK-GNU-NF5// RUN: %clang_cc1 -fobjc-runtime=gnustep-2.2 -fobjc-dispatch-method=non-legacy -emit-llvm -o - %s | FileCheck %s -check-prefix=CHECK-MAC6 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_msgSend18 // CHECK-MAC-NF: call {{.*}} @objc_msgSend19 // CHECK-GNU: call {{.*}} @objc_msg_lookup(20 // CHECK-GNU-NF: call {{.*}} @objc_msg_lookup_sender(21 [a print0];22 23 // CHECK-MAC: call {{.*}} @objc_msgSend24 // CHECK-MAC-NF: call {{.*}} @objc_msgSend25 // 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_msgSend30 // CHECK-MAC-NF: call {{.*}} @objc_msgSend31 // 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_msgSend36 // CHECK-MAC-NF: call {{.*}} @objc_msgSend37 // 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_msgSend44 // CHECK-MAC-NF: call {{.*}} @objc_msgSend45 // CHECK-GNU: call {{.*}} @objc_msg_lookup(46 // CHECK-GNU-NF: call {{.*}} @objc_msg_lookup_sender(47 [a performSelector:s];48}49