xref: /llvm-project/clang/test/Rewriter/rewrite-message-expr.mm (revision 0f1c1be1968076d6f96f8a7bcc4a15cf195ecd97)
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
4@interface Baz
5- (id)y;
6+ (id)z;
7@end
8
9@interface Foo {
10@public
11	int bar;
12}
13@end
14
15extern Foo* x(id a);
16
17int f(Baz *baz) {
18	int i = x([Baz z])->bar;
19        int j = ((Foo*)[Baz z])->bar;
20        int k = x([baz y])->bar;
21        return i+j+k;
22}
23
24// CHECK-LP: ((struct Foo_IMPL *)x(((id (*)(id, SEL))(void *)objc_msgSend)(objc_getClass("Baz"), sel_registerName("z"))))->bar
25