1// RUN: clang-cc -fnext-runtime --emit-llvm -o %t %s && 2// RUN: grep "objc_msgSend" %t | count 6 && 3// RUNX: clang-cc -fgnu-runtime --emit-llvm -o %t %s && 4// RUNX: grep "objc_msg_lookup" %t | count 6 && 5// RUNY: clang-cc -fgnu-runtime -fobjc-sender-dependent-dispatch --emit-llvm -o %t %s && 6// RUNY: grep "objc_msg_lookup_sender" %t | count 6 7// RUN: true 8 9typedef struct { 10 int x; 11 int y; 12 int z[10]; 13} MyPoint; 14 15void f0(id a) { 16 int i; 17 MyPoint pt = { 1, 2}; 18 19 [a print0]; 20 [a print1: 10]; 21 [a print2: 10 and: "hello" and: 2.2]; 22 [a takeStruct: pt ]; 23 24 void *s = @selector(print0); 25 for (i=0; i<2; ++i) 26 [a performSelector:s]; 27} 28