1 | // RUN: %clang_cc1 -x objective-c++ -fblocks -fms-extensions -rewrite-objc -fobjc-runtime=macosx-fragile-10.5 %s -o %t-rw.cpp |
2 | // RUN: FileCheck -check-prefix CHECK-LP --input-file=%t-rw.cpp %s |
3 | // radar 7617047 |
4 | |
5 | @interface Baz |
6 | - (id)y; |
7 | + (id)z; |
8 | @end |
9 | |
10 | @interface Foo { |
11 | @public |
12 | int bar; |
13 | } |
14 | @end |
15 | |
16 | extern Foo* x(id a); |
17 | |
18 | int f(Baz *baz) { |
19 | int i = x([Baz z])->bar; |
20 | int j = ((Foo*)[Baz z])->bar; |
21 | int k = x([baz y])->bar; |
22 | return i+j+k; |
23 | } |
24 | |
25 | // CHECK-LP: ((struct Foo_IMPL *)x(((id (*)(id, SEL))(void *)objc_msgSend)(objc_getClass("Baz"), sel_registerName("z"))))->bar |
26 | |