blob: 65a71a5a1d354f7223c151948669c1a54f9ac36d [file] [log] [blame]
John McCall260611a2012-06-20 06:18:46 +00001// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fobjc-runtime=macosx-fragile-10.5 -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
John McCall260611a2012-06-20 06:18:46 +00004// RUN: %clang_cc1 -x objective-c++ -triple x86_64-apple-darwin10 -fobjc-runtime=macosx-fragile-10.5 -fobjc-gc -emit-llvm -o %t %s
Fariborz Jahanian27b7aa02010-05-20 18:22:28 +00005// 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