1 // RUN: %clang_cc1 -analyze -analyzer-checker=core -analyzer-config suppress-inlined-defensive-checks=true -verify %s 2 3 typedef signed char BOOL; 4 typedef struct objc_class *Class; 5 typedef struct objc_object { 6 Class isa; 7 } *id; 8 @protocol NSObject - (BOOL)isEqual:(id)object; @end 9 @interface NSObject <NSObject> {} 10 +(id)alloc; 11 +(id)new; 12 -(id)init; 13 -(id)autorelease; 14 -(id)copy; 15 - (Class)class; 16 -(id)retain; 17 @end 18 19 // expected-no-diagnostics 20 // Check that inline defensive checks is triggered for null expressions 21 // within CompoundLiteralExpr. 22 typedef union { 23 struct dispatch_object_s *_do; 24 struct dispatch_source_s *_ds; 25 } dispatch_object_t __attribute__((__transparent_union__)); 26 typedef struct dispatch_source_s *dispatch_source_t; 27 28 extern __attribute__((visibility("default"))) __attribute__((__nonnull__)) __attribute__((__nothrow__)) 29 void 30 dispatch_resume(dispatch_object_t object); 31 32 @interface AppDelegate : NSObject { 33 @protected 34 dispatch_source_t p; 35 } 36 @end 37 @implementation AppDelegate 38 - (void)updateDeleteTimer { 39 if (p != ((void*)0)) 40 ; 41 } 42 - (void)createAndStartDeleteTimer { 43 [self updateDeleteTimer]; 44 dispatch_resume(p); // no warning 45 } 46 @end 47