1 | // RUN: %clang_cc1 -fobjc-gc -emit-llvm -o %t %s |
2 | // RUN: grep objc_assign_ivar %t | count 6 |
3 | |
4 | // PR13820 |
5 | // REQUIRES: LP64 |
6 | |
7 | @interface I @end |
8 | |
9 | typedef I TI; |
10 | typedef I* TPI; |
11 | |
12 | typedef id ID; |
13 | |
14 | @interface MyClass { |
15 | } |
16 | |
17 | @property id property; |
18 | @property I* propertyI; |
19 | |
20 | @property TI* propertyTI; |
21 | |
22 | @property TPI propertyTPI; |
23 | |
24 | @property ID propertyID; |
25 | @end |
26 | |
27 | @implementation MyClass |
28 | @synthesize property=_property; |
29 | @synthesize propertyI; |
30 | @synthesize propertyTI=_propertyTI; |
31 | @synthesize propertyTPI=_propertyTPI; |
32 | @synthesize propertyID = _propertyID; |
33 | @end |
34 | |
35 | int main () { |
36 | MyClass *myObj; |
37 | myObj.property = 0; |
38 | myObj.propertyI = 0; |
39 | myObj.propertyTI = 0; |
40 | myObj.propertyTPI = 0; |
41 | myObj.propertyID = 0; |
42 | return 0; |
43 | } |
44 | |