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