|  | // RUN: %clang_cc1 -fsyntax-only -verify %s | 
|  | // expected-no-diagnostics | 
|  |  | 
|  |  | 
|  | @interface Object | 
|  | + (id) new; | 
|  | @end | 
|  |  | 
|  | @protocol GCObject | 
|  | @property int class; | 
|  | @end | 
|  |  | 
|  | @protocol DerivedGCObject <GCObject> | 
|  | @property int Dclass; | 
|  | @end | 
|  |  | 
|  | @interface GCObject  : Object <DerivedGCObject> { | 
|  | int ifield; | 
|  | int iOwnClass; | 
|  | int iDclass; | 
|  | } | 
|  | @property int OwnClass; | 
|  | @end | 
|  |  | 
|  | @implementation GCObject : Object | 
|  | @synthesize class=ifield; | 
|  | @synthesize Dclass=iDclass; | 
|  | @synthesize OwnClass=iOwnClass; | 
|  | @end | 
|  |  | 
|  | int main(int argc, char **argv) { | 
|  | GCObject *f = [GCObject new]; | 
|  | f.class = 5; | 
|  | f.Dclass = 1; | 
|  | f.OwnClass = 3; | 
|  | return f.class + f.Dclass  + f.OwnClass - 9; | 
|  | } |