|  | // 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; | 
|  | } |