[docs] Fix build-docs.sh
[llvm-project.git] / clang / test / Rewriter / rewrite-cast-ivar-access.mm
blobd5c2796bcf348ff8d95bc3fbb677215304666442
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 7575882
5 @interface F {
6   int supervar;
8 @end
10 @interface G : F {
11 @public
12   int ivar;
14 @end
16 @implementation G
17 - (void)foo:(F *)arg {
18         int q = arg->supervar;
19         int v = ((G *)arg)->ivar;
21 @end
23 void objc_assign_strongCast(id);
24 void __CFAssignWithWriteBarrier(void **location, void *value) {
25         objc_assign_strongCast((id)value);
28 // radar 7607605
29 @interface RealClass {
30         @public
31         int f;
33 @end
35 @implementation RealClass
36 @end
38 @interface Foo {
39         id reserved;
41 @end
43 @implementation Foo
44 - (void)bar {
45         ((RealClass*)reserved)->f = 99;
47 @end
49 // CHECK-LP: ((struct G_IMPL *)arg)->ivar
51 // CHECK-LP: objc_assign_strongCast((id)value)
53 // CHECK-LP: ((struct RealClass_IMPL *)((RealClass *)((struct Foo_IMPL *)self)->reserved))->f