blob: b4403c1ef6757dee9f69fc515426f3de53db847b [file] [log] [blame]
Daniel Dunbara5728872009-12-15 20:14:24 +00001// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fobjc-gc -emit-llvm -o %t %s
Daniel Dunbar4fcfde42009-11-08 01:45:36 +00002// RUN: grep objc_assign_ivar %t | count 0
Fariborz Jahanianccae76c2011-09-30 18:23:36 +00003// RUN: grep objc_assign_strongCast %t | count 8
Fariborz Jahanian27b7aa02010-05-20 18:22:28 +00004// RUN: %clang_cc1 -x objective-c++ -triple x86_64-apple-darwin10 -fobjc-gc -emit-llvm -o %t %s
5// RUN: grep objc_assign_ivar %t | count 0
Fariborz Jahanianccae76c2011-09-30 18:23:36 +00006// RUN: grep objc_assign_strongCast %t | count 8
Fariborz Jahanian75b08f12009-09-30 17:10:29 +00007
8@interface TestUnarchiver
9{
10 void *allUnarchivedObjects;
11}
12@end
13
14@implementation TestUnarchiver
15
16struct unarchive_list {
17 int ifield;
18 id *list;
19};
20
21- (id)init {
22 (*((struct unarchive_list *)allUnarchivedObjects)).list = 0;
23 ((struct unarchive_list *)allUnarchivedObjects)->list = 0;
24 (**((struct unarchive_list **)allUnarchivedObjects)).list = 0;
25 (*((struct unarchive_list **)allUnarchivedObjects))->list = 0;
26 return 0;
27}
28
29@end
Fariborz Jahanianccae76c2011-09-30 18:23:36 +000030
31// rdar://10191569
32@interface I
33{
34 struct S {
35 id _timer;
36 } *p_animationState;
37}
38@end
39
40@implementation I
41- (void) Meth {
42 p_animationState->_timer = 0;
43 (*p_animationState)._timer = 0;
44 (&(*p_animationState))->_timer = 0;
45}
46@end