1// RUN: %clang_cc1 -fsyntax-only -fdebugger-support -verify -Wno-objc-root-class %s
2// RUN: %clang_cc1 -x objective-c++ -fdebugger-support -fsyntax-only -verify -Wno-objc-root-class %s
3// expected-no-diagnostics
4// rdar://10997647
5
6@interface I
7{
8@private
9int ivar;
10}
11@end
12
13@implementation I
14- (int) meth {
15  return self->ivar;
16}
17int foo1(I* p) {
18  return p->ivar;
19}
20@end
21
22int foo(I* p) {
23  return p->ivar;
24}
25
26@interface B
27@end
28
29@implementation B
30- (int) meth : (I*) arg {
31  return arg->ivar;
32}
33@end
34
35
36@interface I1 {
37 int protected_ivar;
38}
39@property int PROP_INMAIN;
40@end
41
42@interface I1() {
43 int private_ivar;
44}
45@property int PROP_INCLASSEXT;
46@end
47
48@implementation I1
49@synthesize PROP_INMAIN, PROP_INCLASSEXT;
50
51- (int) Meth {
52   PROP_INMAIN = 1;
53   PROP_INCLASSEXT = 2;
54   protected_ivar = 1;  // OK
55   return private_ivar; // OK
56}
57@end
58
59
60@interface DER : I1
61@end
62
63@implementation DER
64- (int) Meth {
65   protected_ivar = 1;  // OK
66   PROP_INMAIN = 1;
67   PROP_INCLASSEXT = 2;
68   return private_ivar;
69}
70@end
71
72