| // RUN: clang-cc -triple x86_64-apple-darwin10 -fobjc-gc -emit-llvm -o %t %s && | |
| // RUN: grep objc_assign_global %t | count 3 && | |
| // RUN: grep objc_assign_strongCast %t | count 2 && | |
| // RUN: true | |
| @interface A | |
| @end | |
| typedef struct s0 { | |
| A *a[4]; | |
| } T; | |
| T g0; | |
| void f0(id x) { | |
| g0.a[0] = x; | |
| } | |
| void f1(id x) { | |
| ((T*) &g0)->a[0] = x; | |
| } | |
| void f2(unsigned idx) | |
| { | |
| id *keys; | |
| keys[idx] = 0; | |
| } | |