Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / clang / test / CodeGenObjC / messages.m
blobf93d35a8d60c188aeaf1e138ea2380a407f85b24
1 // RUN: %clang_cc1 -fobjc-runtime=macosx-fragile-10.5 -emit-llvm -o - %s | FileCheck %s -check-prefix=CHECK-MAC
2 // RUN: %clang_cc1 -emit-llvm -o - %s | FileCheck %s -check-prefix=CHECK-MAC-NF
3 // RUN: %clang_cc1 -fobjc-runtime=gcc -emit-llvm -o - %s | FileCheck %s -check-prefix=CHECK-GNU
4 // RUN: %clang_cc1 -fobjc-runtime=gnustep -emit-llvm -o - %s | FileCheck %s -check-prefix CHECK-GNU-NF
6 typedef struct {
7   int x;
8   int y;
9   int z[10];
10 } MyPoint;
12 void f0(id a) {
13   int i;
14   MyPoint pt = { 1, 2};
16   // CHECK-MAC: call {{.*}} @objc_msgSend
17   // CHECK-MAC-NF: call {{.*}} @objc_msgSend
18   // CHECK-GNU: call {{.*}} @objc_msg_lookup(
19   // CHECK-GNU-NF: call {{.*}} @objc_msg_lookup_sender(
20   [a print0];
22   // CHECK-MAC: call {{.*}} @objc_msgSend
23   // CHECK-MAC-NF: call {{.*}} @objc_msgSend
24   // CHECK-GNU: call {{.*}} @objc_msg_lookup(
25   // CHECK-GNU-NF: call {{.*}} @objc_msg_lookup_sender(
26   [a print1: 10];
28   // CHECK-MAC: call {{.*}} @objc_msgSend
29   // CHECK-MAC-NF: call {{.*}} @objc_msgSend
30   // CHECK-GNU: call {{.*}} @objc_msg_lookup(
31   // CHECK-GNU-NF: call {{.*}} @objc_msg_lookup_sender(
32   [a print2: 10 and: "hello" and: 2.2];
34   // CHECK-MAC: call {{.*}} @objc_msgSend
35   // CHECK-MAC-NF: call {{.*}} @objc_msgSend
36   // CHECK-GNU: call {{.*}} @objc_msg_lookup(
37   // CHECK-GNU-NF: call {{.*}} @objc_msg_lookup_sender(
38   [a takeStruct: pt ];
39   
40   void *s = @selector(print0);
41   for (i=0; i<2; ++i)
42     // CHECK-MAC: call {{.*}} @objc_msgSend
43     // CHECK-MAC-NF: call {{.*}} @objc_msgSend
44     // CHECK-GNU: call {{.*}} @objc_msg_lookup(
45     // CHECK-GNU-NF: call {{.*}} @objc_msg_lookup_sender(
46     [a performSelector:s];