xref: /minix3/external/bsd/llvm/dist/clang/test/CodeGenObjC/messages.m (revision f4a2713ac843a11c696ec80c0a5e3e5d80b4d338)
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