[hwasan] Omit tag check for null pointers (#122206)
[llvm-project.git] / clang / test / Rewriter / rewrite-nested-property-in-blocks.mm
blob71e97a16f3c62b498bb467b7e781da88d6c22509
1 // RUN: %clang_cc1 -triple i686-pc-windows -x objective-c++ -Wno-return-type -fblocks -fms-extensions -rewrite-objc -fobjc-runtime=macosx-fragile-10.5 %s -o %t-rw.cpp
2 // RUN: %clang_cc1 -triple i686-pc-windows -fsyntax-only -fms-extensions -Wno-address-of-temporary -Did="void *" -D"SEL=void*" -D"__declspec(X)=" %t-rw.cpp
3 // RUN: %clang_cc1 -triple i686-pc-windows -x objective-c++ -Wno-return-type -fblocks -fms-extensions -rewrite-objc %s -o %t-modern-rw.cpp
4 // RUN: %clang_cc1 -triple i686-pc-windows -fsyntax-only -fms-extensions -Wno-address-of-temporary -Did="void *" -D"SEL=void*" -D"__declspec(X)=" %t-modern-rw.cpp
6 typedef unsigned long size_t;
7 void *sel_registerName(const char *);
9 extern "C" void nowarn(id);
11 extern "C" void noblockwarn(void (^)());
13 @interface INTFOFPROP 
14 @property (readwrite, retain) INTFOFPROP *outer;
15 @property (readwrite, retain) id inner;
16 @end
18 @interface NSSet
19 - (NSSet *)objectsPassingTest:(char (^)(id obj, char *stop))predicate ;
20 @end
22 @interface INTF
23 - (NSSet *)Meth;
24 @end
26 @implementation INTF
28 - (NSSet *)Meth
30     NSSet *aces;
32     noblockwarn(^() {
33         INTFOFPROP *ace;
34         nowarn(ace.outer.inner);
35         noblockwarn(^() {
36           INTFOFPROP *ace;
37           nowarn(ace.outer.inner);
38         });
39     });
41     noblockwarn(^() {
42         INTFOFPROP *ace;
43         nowarn(ace.outer.inner);
44     });
46 return [aces objectsPassingTest:^(id obj, char *stop)
47     {
48         INTFOFPROP *ace = (INTFOFPROP *)obj;
49         nowarn(ace.outer.inner);
50         return (char)0;
51     }];
54 @end