xref: /llvm-project/clang/test/CodeGenObjC/messages.m (revision ba74e5daa58fd7d65e5ff2929b7712e83299c097)
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