| // RUN: %clang_cc1 -fobjc-gc -emit-llvm -o %t %s | 
 | // RUN: grep objc_assign_ivar %t | count 6 | 
 |  | 
 | // PR13820 | 
 | // REQUIRES: LP64 | 
 |  | 
 | @interface I @end | 
 |  | 
 | typedef I TI; | 
 | typedef I* TPI; | 
 |  | 
 | typedef id ID; | 
 |  | 
 | @interface MyClass { | 
 | } | 
 |  | 
 | @property id property; | 
 | @property I* propertyI; | 
 |  | 
 | @property TI* propertyTI; | 
 |  | 
 | @property TPI propertyTPI; | 
 |  | 
 | @property ID propertyID; | 
 | @end | 
 |  | 
 | @implementation MyClass | 
 | 	@synthesize property=_property; | 
 |         @synthesize propertyI; | 
 |         @synthesize propertyTI=_propertyTI; | 
 |         @synthesize propertyTPI=_propertyTPI; | 
 |          @synthesize propertyID = _propertyID; | 
 | @end | 
 |  | 
 | int main () { | 
 |     MyClass *myObj; | 
 |     myObj.property = 0; | 
 |     myObj.propertyI = 0; | 
 |     myObj.propertyTI = 0; | 
 |     myObj.propertyTPI = 0; | 
 |     myObj.propertyID = 0; | 
 |     return 0; | 
 | } |