xref: /llvm-project/clang/test/CodeGenObjC/messages.m (revision 8b576979549184e73c6876ec4b494aacf7c87d2d)
1// RUN: clang-cc -fnext-runtime --emit-llvm -o %t %s
2// RUN: grep "objc_msgSend" %t | count 6
3// RUN: clang-cc -fgnu-runtime --emit-llvm -o %t %s
4// RUN: grep "objc_msg_lookup" %t | count 6
5// RUN: clang-cc -fgnu-runtime -fobjc-nonfragile-abi --emit-llvm -o %t %s
6// RUN: 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