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