| // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fobjc-runtime=macosx-fragile-10.5 -fobjc-gc -emit-llvm -o %t %s | |
| // RUN: not grep objc_assign_ivar %t | |
| // RUN: grep objc_assign_strongCast %t | count 8 | |
| // RUN: %clang_cc1 -x objective-c++ -triple x86_64-apple-darwin10 -fobjc-runtime=macosx-fragile-10.5 -fobjc-gc -emit-llvm -o %t %s | |
| // RUN: not grep objc_assign_ivar %t | |
| // RUN: grep objc_assign_strongCast %t | count 8 | |
| @interface TestUnarchiver | |
| { | |
| void *allUnarchivedObjects; | |
| } | |
| @end | |
| @implementation TestUnarchiver | |
| struct unarchive_list { | |
| int ifield; | |
| id *list; | |
| }; | |
| - (id)init { | |
| (*((struct unarchive_list *)allUnarchivedObjects)).list = 0; | |
| ((struct unarchive_list *)allUnarchivedObjects)->list = 0; | |
| (**((struct unarchive_list **)allUnarchivedObjects)).list = 0; | |
| (*((struct unarchive_list **)allUnarchivedObjects))->list = 0; | |
| return 0; | |
| } | |
| @end | |
| @interface I | |
| { | |
| struct S { | |
| id _timer; | |
| } *p_animationState; | |
| } | |
| @end | |
| @implementation I | |
| - (void) Meth { | |
| p_animationState->_timer = 0; | |
| (*p_animationState)._timer = 0; | |
| (&(*p_animationState))->_timer = 0; | |
| } | |
| @end |