David Chisnall 76803410c2 Fixed type error in last commit (forgot that now that selectors are not
accessed via the indirect pointer, they don't need to be pointers to pointers).

Finished moving the message lookup code into separate subclasses for each
runtime.  Also performed a few smallish related tidies.

We're now bitcasting the result of the message lookup functions, rather than
casting the lookup functions themselves, so the messages.m test needed updating
to reflect this.

llvm-svn: 128180
2011-03-23 22:52:06 +00:00

48 lines
1.6 KiB
Objective-C

// RUN: %clang_cc1 -emit-llvm -o - %s | FileCheck %s -check-prefix=CHECK-MAC
// RUN: %clang_cc1 -emit-llvm -fobjc-nonfragile-abi -o - %s | FileCheck %s -check-prefix=CHECK-MAC-NF
// RUN: %clang_cc1 -fgnu-runtime -emit-llvm -o - %s | FileCheck %s -check-prefix=CHECK-GNU
// RUN: %clang_cc1 -fgnu-runtime -fobjc-nonfragile-abi -emit-llvm -o - %s | FileCheck %s -check-prefix CHECK-GNU-NF
typedef struct {
int x;
int y;
int z[10];
} MyPoint;
void f0(id a) {
int i;
MyPoint pt = { 1, 2};
// CHECK-MAC: call {{.*}} @objc_msgSend to
// CHECK-MAC-NF: call {{.*}} @objc_msgSend to
// CHECK-GNU: call {{.*}} @objc_msg_lookup(
// CHECK-GNU-NF: call {{.*}} @objc_msg_lookup_sender(
[a print0];
// CHECK-MAC: call {{.*}} @objc_msgSend to
// CHECK-MAC-NF: call {{.*}} @objc_msgSend to
// CHECK-GNU: call {{.*}} @objc_msg_lookup(
// CHECK-GNU-NF: call {{.*}} @objc_msg_lookup_sender(
[a print1: 10];
// CHECK-MAC: call {{.*}} @objc_msgSend to
// CHECK-MAC-NF: call {{.*}} @objc_msgSend to
// CHECK-GNU: call {{.*}} @objc_msg_lookup(
// CHECK-GNU-NF: call {{.*}} @objc_msg_lookup_sender(
[a print2: 10 and: "hello" and: 2.2];
// CHECK-MAC: call {{.*}} @objc_msgSend to
// CHECK-MAC-NF: call {{.*}} @objc_msgSend to
// CHECK-GNU: call {{.*}} @objc_msg_lookup(
// CHECK-GNU-NF: call {{.*}} @objc_msg_lookup_sender(
[a takeStruct: pt ];
void *s = @selector(print0);
for (i=0; i<2; ++i)
// CHECK-MAC: call {{.*}} @objc_msgSend to
// CHECK-MAC-NF: call {{.*}} @objc_msgSend to
// CHECK-GNU: call {{.*}} @objc_msg_lookup(
// CHECK-GNU-NF: call {{.*}} @objc_msg_lookup_sender(
[a performSelector:s];
}