| // RUN: %clang_cc1 -fobjc-gc -emit-llvm -o %t %s |
| // RUN: grep objc_assign_ivar %t | count 6 |
| |
| @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; |
| } |