1 | // RUN: %clang_cc1 -fobjc-dispatch-method=mixed -triple i386-apple-darwin10 -emit-llvm -o - %s | FileCheck -check-prefix=CHECK_NEW_DISPATCH %s |
2 | // |
3 | // CHECK_NEW_DISPATCH-LABEL: define void @f0 |
4 | // CHECK_NEW_DISPATCH: bitcast {{.*}}objc_msgSend_fixup_alloc |
5 | // CHECK_NEW_DISPATCH-LABEL: define void @f1 |
6 | // CHECK_NEW_DISPATCH: load {{.*}}OBJC_SELECTOR_REFERENCES |
7 | // |
8 | // RUN: %clang_cc1 -fobjc-dispatch-method=legacy -emit-llvm -o - %s | FileCheck -check-prefix=CHECK_OLD_DISPATCH %s |
9 | // |
10 | // CHECK_OLD_DISPATCH-LABEL: define {{.*}}void @f0 |
11 | // CHECK_OLD_DISPATCH: load {{.*}}OBJC_SELECTOR_REFERENCES |
12 | // CHECK_OLD_DISPATCH-LABEL: define {{.*}}void @f1 |
13 | // CHECK_OLD_DISPATCH: load {{.*}}OBJC_SELECTOR_REFERENCES |
14 | |
15 | @interface A |
16 | +(id) alloc; |
17 | -(int) im0; |
18 | @end |
19 | |
20 | void f0(void) { |
21 | [A alloc]; |
22 | } |
23 | |
24 | void f1(A *a) { |
25 | [a im0]; |
26 | } |
27 | |