1 | // RUN: %clang_cc1 -E %s -o %t.m |
2 | // RUN: %clang_cc1 -fblocks -rewrite-objc -fms-extensions %t.m -o %t-rw.cpp |
3 | // RUN: FileCheck --input-file=%t-rw.cpp %s |
4 | // RUN: %clang_cc1 -fsyntax-only -std=gnu++98 -Wno-address-of-temporary -D"Class=void*" -D"id=void*" -D"SEL=void*" -D"__declspec(X)=" %t-rw.cpp |
5 | |
6 | @interface NSURLResponse { |
7 | @public |
8 | NSURLResponse *InnerResponse; |
9 | } |
10 | @end |
11 | |
12 | @interface NSCachedURLResponseInternal |
13 | { |
14 | @public |
15 | NSURLResponse *response; |
16 | } |
17 | @end |
18 | |
19 | @interface NSCachedURLResponse |
20 | { |
21 | @private |
22 | NSCachedURLResponseInternal *_internal; |
23 | } |
24 | - (void) Meth; |
25 | @end |
26 | |
27 | @implementation NSCachedURLResponse |
28 | - (void) Meth { |
29 | _internal->response->InnerResponse = 0; |
30 | } |
31 | @end |
32 | |
33 | // CHECK: (*(NSURLResponse **)((char *)(*(NSURLResponse **)((char *)(*(NSCachedURLResponseInternal **)((char *)self + OBJC_IVAR_$_NSCachedURLResponse$_internal)) + OBJC_IVAR_$_NSCachedURLResponseInternal$response)) + OBJC_IVAR_$_NSURLResponse$InnerResponse)) = 0; |
34 | |