|  | // RUN: %clang_cc1 -fobjc-runtime=macosx-fragile-10.5 -emit-llvm -o - %s | FileCheck %s -check-prefix=CHECK-MAC | 
|  | // RUN: %clang_cc1 -emit-llvm -o - %s | FileCheck %s -check-prefix=CHECK-MAC-NF | 
|  | // RUN: %clang_cc1 -fobjc-runtime=gcc -emit-llvm -o - %s | FileCheck %s -check-prefix=CHECK-GNU | 
|  | // RUN: %clang_cc1 -fobjc-runtime=gnustep -emit-llvm -o - %s | FileCheck %s -check-prefix CHECK-GNU-NF | 
|  |  | 
|  | typedef struct { | 
|  | int x; | 
|  | int y; | 
|  | int z[10]; | 
|  | } MyPoint; | 
|  |  | 
|  | void f0(id a) { | 
|  | int i; | 
|  | MyPoint pt = { 1, 2}; | 
|  |  | 
|  | // CHECK-MAC: call {{.*}} @objc_msgSend to | 
|  | // CHECK-MAC-NF: call {{.*}} @objc_msgSend to | 
|  | // CHECK-GNU: call {{.*}} @objc_msg_lookup( | 
|  | // CHECK-GNU-NF: call {{.*}} @objc_msg_lookup_sender( | 
|  | [a print0]; | 
|  |  | 
|  | // CHECK-MAC: call {{.*}} @objc_msgSend to | 
|  | // CHECK-MAC-NF: call {{.*}} @objc_msgSend to | 
|  | // CHECK-GNU: call {{.*}} @objc_msg_lookup( | 
|  | // CHECK-GNU-NF: call {{.*}} @objc_msg_lookup_sender( | 
|  | [a print1: 10]; | 
|  |  | 
|  | // CHECK-MAC: call {{.*}} @objc_msgSend to | 
|  | // CHECK-MAC-NF: call {{.*}} @objc_msgSend to | 
|  | // CHECK-GNU: call {{.*}} @objc_msg_lookup( | 
|  | // CHECK-GNU-NF: call {{.*}} @objc_msg_lookup_sender( | 
|  | [a print2: 10 and: "hello" and: 2.2]; | 
|  |  | 
|  | // CHECK-MAC: call {{.*}} @objc_msgSend to | 
|  | // CHECK-MAC-NF: call {{.*}} @objc_msgSend to | 
|  | // CHECK-GNU: call {{.*}} @objc_msg_lookup( | 
|  | // CHECK-GNU-NF: call {{.*}} @objc_msg_lookup_sender( | 
|  | [a takeStruct: pt ]; | 
|  |  | 
|  | void *s = @selector(print0); | 
|  | for (i=0; i<2; ++i) | 
|  | // CHECK-MAC: call {{.*}} @objc_msgSend to | 
|  | // CHECK-MAC-NF: call {{.*}} @objc_msgSend to | 
|  | // CHECK-GNU: call {{.*}} @objc_msg_lookup( | 
|  | // CHECK-GNU-NF: call {{.*}} @objc_msg_lookup_sender( | 
|  | [a performSelector:s]; | 
|  | } |