1*67e74705SXin Li// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -analyze -analyzer-checker=core,osx.cocoa.RetainCount,deadcode -verify -fblocks -analyzer-opt-analyze-nested-blocks -fobjc-arc -analyzer-config path-diagnostics-alternate=true -analyzer-output=plist-multi-file -o %t.plist %s 2*67e74705SXin Li// RUN: FileCheck --input-file=%t.plist %s 3*67e74705SXin Li 4*67e74705SXin Litypedef signed char BOOL; 5*67e74705SXin Litypedef struct _NSZone NSZone; 6*67e74705SXin Li@class NSInvocation, NSMethodSignature, NSCoder, NSString, NSEnumerator; 7*67e74705SXin Litypedef unsigned long NSUInteger; 8*67e74705SXin Li 9*67e74705SXin Li@protocol NSObject 10*67e74705SXin Li- (BOOL)isEqual:(id)object; 11*67e74705SXin Li@end 12*67e74705SXin Li@protocol NSCopying 13*67e74705SXin Li- (id)copyWithZone:(NSZone *)zone; 14*67e74705SXin Li@end 15*67e74705SXin Li@protocol NSCoding; 16*67e74705SXin Li@protocol NSMutableCopying; 17*67e74705SXin Li@protocol NSFastEnumeration 18*67e74705SXin Li- (void)encodeWithCoder:(NSCoder *)aCoder; 19*67e74705SXin Li@end 20*67e74705SXin Li@protocol NSMutableCopying - (id)mutableCopyWithZone:(NSZone *)zone; 21*67e74705SXin Li@end 22*67e74705SXin Li@protocol NSCoding - (void)encodeWithCoder:(NSCoder *)aCoder; 23*67e74705SXin Li@end 24*67e74705SXin Li@interface NSObject <NSObject> {} 25*67e74705SXin Li+ (id)alloc; 26*67e74705SXin Li- (id)init; 27*67e74705SXin Li- (NSString *)description; 28*67e74705SXin Li@end 29*67e74705SXin Li@interface NSArray : NSObject <NSCopying, NSMutableCopying, NSCoding, NSFastEnumeration> 30*67e74705SXin Li- (NSUInteger)count; 31*67e74705SXin Li- (id)initWithObjects:(const id [])objects count:(NSUInteger)cnt; 32*67e74705SXin Li+ (id)arrayWithObject:(id)anObject; 33*67e74705SXin Li+ (id)arrayWithObjects:(const id [])objects count:(NSUInteger)cnt; 34*67e74705SXin Li+ (id)arrayWithObjects:(id)firstObj, ... __attribute__((sentinel(0,1))); 35*67e74705SXin Li- (id)initWithObjects:(id)firstObj, ... __attribute__((sentinel(0,1))); 36*67e74705SXin Li- (id)initWithArray:(NSArray *)array; 37*67e74705SXin Li@end 38*67e74705SXin Li 39*67e74705SXin Litypedef const struct __CFAllocator * CFAllocatorRef; 40*67e74705SXin Liextern const CFAllocatorRef kCFAllocatorDefault; 41*67e74705SXin Litypedef double CFTimeInterval; 42*67e74705SXin Litypedef CFTimeInterval CFAbsoluteTime; 43*67e74705SXin Liextern CFAbsoluteTime CFAbsoluteTimeGetCurrent(void); 44*67e74705SXin Litypedef const struct __CFDate * CFDateRef; 45*67e74705SXin Liextern CFDateRef CFDateCreate(CFAllocatorRef allocator, CFAbsoluteTime at); 46*67e74705SXin Li 47*67e74705SXin Litypedef const void* objc_objectptr_t; 48*67e74705SXin Li__attribute__((ns_returns_retained)) id objc_retainedObject(objc_objectptr_t __attribute__((cf_consumed)) pointer); 49*67e74705SXin Li__attribute__((ns_returns_not_retained)) id objc_unretainedObject(objc_objectptr_t pointer); 50*67e74705SXin Li 51*67e74705SXin Li// Test the analyzer is working at all. 52*67e74705SXin Livoid test_working() { 53*67e74705SXin Li int *p = 0; 54*67e74705SXin Li *p = 0xDEADBEEF; // expected-warning {{null}} 55*67e74705SXin Li} 56*67e74705SXin Li 57*67e74705SXin Li// Test that in ARC mode that blocks are correctly automatically copied 58*67e74705SXin Li// and not flagged as warnings by the analyzer. 59*67e74705SXin Litypedef void (^Block)(void); 60*67e74705SXin Livoid testblock_bar(int x); 61*67e74705SXin Li 62*67e74705SXin LiBlock testblock_foo(int x) { 63*67e74705SXin Li Block b = ^{ testblock_bar(x); }; 64*67e74705SXin Li return b; // no-warning 65*67e74705SXin Li} 66*67e74705SXin Li 67*67e74705SXin LiBlock testblock_baz(int x) { 68*67e74705SXin Li return ^{ testblock_bar(x); }; // no-warning 69*67e74705SXin Li} 70*67e74705SXin Li 71*67e74705SXin LiBlock global_block; 72*67e74705SXin Li 73*67e74705SXin Livoid testblock_qux(int x) { 74*67e74705SXin Li global_block = ^{ testblock_bar(x); }; // no-warning 75*67e74705SXin Li} 76*67e74705SXin Li 77*67e74705SXin Li// Test that Objective-C pointers are null initialized. 78*67e74705SXin Livoid test_nil_initialized() { 79*67e74705SXin Li id x; 80*67e74705SXin Li if (x == 0) 81*67e74705SXin Li return; 82*67e74705SXin Li int *p = 0; 83*67e74705SXin Li *p = 0xDEADBEEF; // no-warning 84*67e74705SXin Li} 85*67e74705SXin Li 86*67e74705SXin Li// Test that we don't flag leaks of Objective-C objects. 87*67e74705SXin Livoid test_alloc() { 88*67e74705SXin Li [NSObject alloc]; // no-warning 89*67e74705SXin Li} 90*67e74705SXin Li 91*67e74705SXin Li// Test that CF allocations are still caught as leaks. 92*67e74705SXin Livoid test_cf_leak() { 93*67e74705SXin Li CFAbsoluteTime t = CFAbsoluteTimeGetCurrent(); 94*67e74705SXin Li CFDateRef date = CFDateCreate(0, t); // expected-warning {{Potential leak}} 95*67e74705SXin Li (void) date; 96*67e74705SXin Li} 97*67e74705SXin Li 98*67e74705SXin Li// Test that 'init' methods do not try to claim ownerhip of an *unowned* allocated object 99*67e74705SXin Li// in ARC mode. 100*67e74705SXin Li@interface RDar9424890_A : NSObject 101*67e74705SXin Li- (id)initWithCleaner:(int)pop mop:(NSString *)mop ; 102*67e74705SXin Li- (RDar9424890_A *)rdar9424890:(NSString *)identifier; 103*67e74705SXin Li@end 104*67e74705SXin Li@interface RDar9424890_B : NSObject 105*67e74705SXin Li@end 106*67e74705SXin Li@implementation RDar9424890_B 107*67e74705SXin Li- (RDar9424890_A *)obj:(RDar9424890_A *)obj { 108*67e74705SXin Li static NSString *WhizFiz = @"WhizFiz"; 109*67e74705SXin Li RDar9424890_A *cell = [obj rdar9424890:WhizFiz]; 110*67e74705SXin Li if (cell == ((void*)0)) { 111*67e74705SXin Li cell = [[RDar9424890_A alloc] initWithCleaner:0 mop:WhizFiz]; // no-warning 112*67e74705SXin Li } 113*67e74705SXin Li return cell; 114*67e74705SXin Li} 115*67e74705SXin Li@end 116*67e74705SXin Li 117*67e74705SXin Li// Test that dead store checking works in the prescence of "cleanups" in the AST. 118*67e74705SXin Livoid rdar9424882() { 119*67e74705SXin Li id x = [NSObject alloc]; // expected-warning {{Value stored to 'x' during its initialization is never read}} 120*67e74705SXin Li} 121*67e74705SXin Li 122*67e74705SXin Li// Test 123*67e74705SXin Litypedef const void *CFTypeRef; 124*67e74705SXin Litypedef const struct __CFString *CFStringRef; 125*67e74705SXin Li 126*67e74705SXin Li@interface NSString 127*67e74705SXin Li- (id) self; 128*67e74705SXin Li@end 129*67e74705SXin Li 130*67e74705SXin LiCFTypeRef CFCreateSomething(); 131*67e74705SXin LiCFStringRef CFCreateString(); 132*67e74705SXin LiCFTypeRef CFGetSomething(); 133*67e74705SXin LiCFStringRef CFGetString(); 134*67e74705SXin Li 135*67e74705SXin Liid CreateSomething(); 136*67e74705SXin LiNSString *CreateNSString(); 137*67e74705SXin Li 138*67e74705SXin Livoid from_cf() { 139*67e74705SXin Li id obj1 = (__bridge_transfer id)CFCreateSomething(); // expected-warning{{never read}} 140*67e74705SXin Li id obj2 = (__bridge_transfer NSString*)CFCreateString(); 141*67e74705SXin Li [obj2 self]; // Add a use, to show we can use the object after it has been transferred. 142*67e74705SXin Li id obj3 = (__bridge id)CFGetSomething(); 143*67e74705SXin Li [obj3 self]; // Add a use, to show we can use the object after it has been bridged. 144*67e74705SXin Li id obj4 = (__bridge NSString*)CFGetString(); // expected-warning{{never read}} 145*67e74705SXin Li id obj5 = (__bridge id)CFCreateSomething(); // expected-warning{{never read}} expected-warning{{leak}} 146*67e74705SXin Li id obj6 = (__bridge NSString*)CFCreateString(); // expected-warning{{never read}} expected-warning{{leak}} 147*67e74705SXin Li} 148*67e74705SXin Li 149*67e74705SXin Livoid to_cf(id obj) { 150*67e74705SXin Li CFTypeRef cf1 = (__bridge_retained CFTypeRef)CreateSomething(); // expected-warning{{never read}} 151*67e74705SXin Li CFStringRef cf2 = (__bridge_retained CFStringRef)CreateNSString(); // expected-warning{{never read}} 152*67e74705SXin Li CFTypeRef cf3 = (__bridge CFTypeRef)CreateSomething(); // expected-warning{{never read}} 153*67e74705SXin Li CFStringRef cf4 = (__bridge CFStringRef)CreateNSString(); // expected-warning{{never read}} 154*67e74705SXin Li} 155*67e74705SXin Li 156*67e74705SXin Livoid test_objc_retainedObject() { 157*67e74705SXin Li CFAbsoluteTime t = CFAbsoluteTimeGetCurrent(); 158*67e74705SXin Li CFDateRef date = CFDateCreate(0, t); 159*67e74705SXin Li id x = objc_retainedObject(date); 160*67e74705SXin Li (void) x; 161*67e74705SXin Li} 162*67e74705SXin Li 163*67e74705SXin Livoid test_objc_unretainedObject() { 164*67e74705SXin Li CFAbsoluteTime t = CFAbsoluteTimeGetCurrent(); 165*67e74705SXin Li CFDateRef date = CFDateCreate(0, t); // expected-warning {{Potential leak}} 166*67e74705SXin Li id x = objc_unretainedObject(date); 167*67e74705SXin Li (void) x; 168*67e74705SXin Li} 169*67e74705SXin Li 170*67e74705SXin Li// Previously this resulted in a "return of stack address" warning. 171*67e74705SXin Liid test_return() { 172*67e74705SXin Li id x = (__bridge_transfer id) CFCreateString(); 173*67e74705SXin Li return x; // no-warning 174*67e74705SXin Li} 175*67e74705SXin Li 176*67e74705SXin Livoid test_objc_arrays() { 177*67e74705SXin Li { // CASE ONE -- OBJECT IN ARRAY CREATED DIRECTLY 178*67e74705SXin Li NSObject *o = [[NSObject alloc] init]; 179*67e74705SXin Li NSArray *a = [[NSArray alloc] initWithObjects:o, (void*)0]; 180*67e74705SXin Li [a description]; 181*67e74705SXin Li [o description]; 182*67e74705SXin Li } 183*67e74705SXin Li 184*67e74705SXin Li { // CASE TWO -- OBJECT IN ARRAY CREATED BY DUPING AUTORELEASED ARRAY 185*67e74705SXin Li NSObject *o = [[NSObject alloc] init]; 186*67e74705SXin Li NSArray *a1 = [NSArray arrayWithObjects:o, (void*)0]; 187*67e74705SXin Li NSArray *a2 = [[NSArray alloc] initWithArray:a1]; 188*67e74705SXin Li [a2 description]; 189*67e74705SXin Li [o description]; 190*67e74705SXin Li } 191*67e74705SXin Li 192*67e74705SXin Li { // CASE THREE -- OBJECT IN RETAINED @[] 193*67e74705SXin Li NSObject *o = [[NSObject alloc] init]; 194*67e74705SXin Li NSArray *a3 = @[o]; 195*67e74705SXin Li [a3 description]; 196*67e74705SXin Li [o description]; 197*67e74705SXin Li } 198*67e74705SXin Li { 199*67e74705SXin Li // CASE 4, verify analyzer still working. 200*67e74705SXin Li CFCreateString(); // expected-warning {{leak}} 201*67e74705SXin Li } 202*67e74705SXin Li} 203*67e74705SXin Li 204*67e74705SXin Li// <rdar://problem/11059275> - dispatch_set_context and ARC. 205*67e74705SXin Li__attribute__((cf_returns_retained)) CFTypeRef CFBridgingRetain(id X); 206*67e74705SXin Litypedef void* dispatch_object_t; 207*67e74705SXin Livoid dispatch_set_context(dispatch_object_t object, const void *context); 208*67e74705SXin Li 209*67e74705SXin Livoid rdar11059275(dispatch_object_t object) { 210*67e74705SXin Li NSObject *o = [[NSObject alloc] init]; 211*67e74705SXin Li dispatch_set_context(object, CFBridgingRetain(o)); // no-warning 212*67e74705SXin Li} 213*67e74705SXin Livoid rdar11059275_positive() { 214*67e74705SXin Li NSObject *o = [[NSObject alloc] init]; // expected-warning {{leak}} 215*67e74705SXin Li CFBridgingRetain(o); 216*67e74705SXin Li} 217*67e74705SXin Livoid rdar11059275_negative() { 218*67e74705SXin Li NSObject *o = [[NSObject alloc] init]; // no-warning 219*67e74705SXin Li (void) o; 220*67e74705SXin Li} 221*67e74705SXin Li 222*67e74705SXin Li__attribute__((ns_returns_retained)) id rdar14061675_helper() { 223*67e74705SXin Li return [[NSObject alloc] init]; 224*67e74705SXin Li} 225*67e74705SXin Li 226*67e74705SXin Liid rdar14061675() { 227*67e74705SXin Li // ARC produces an implicit cast here. We need to make sure the combination 228*67e74705SXin Li // of that and the inlined call don't produce a spurious edge cycle. 229*67e74705SXin Li id result = rdar14061675_helper(); 230*67e74705SXin Li *(volatile int *)0 = 1; // expected-warning{{Dereference of null pointer}} 231*67e74705SXin Li return result; 232*67e74705SXin Li} 233*67e74705SXin Li 234*67e74705SXin Li// CHECK: <key>diagnostics</key> 235*67e74705SXin Li// CHECK-NEXT: <array> 236*67e74705SXin Li// CHECK-NEXT: <dict> 237*67e74705SXin Li// CHECK-NEXT: <key>path</key> 238*67e74705SXin Li// CHECK-NEXT: <array> 239*67e74705SXin Li// CHECK-NEXT: <dict> 240*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>event</string> 241*67e74705SXin Li// CHECK-NEXT: <key>location</key> 242*67e74705SXin Li// CHECK-NEXT: <dict> 243*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>53</integer> 244*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>3</integer> 245*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 246*67e74705SXin Li// CHECK-NEXT: </dict> 247*67e74705SXin Li// CHECK-NEXT: <key>ranges</key> 248*67e74705SXin Li// CHECK-NEXT: <array> 249*67e74705SXin Li// CHECK-NEXT: <array> 250*67e74705SXin Li// CHECK-NEXT: <dict> 251*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>53</integer> 252*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>3</integer> 253*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 254*67e74705SXin Li// CHECK-NEXT: </dict> 255*67e74705SXin Li// CHECK-NEXT: <dict> 256*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>53</integer> 257*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>8</integer> 258*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 259*67e74705SXin Li// CHECK-NEXT: </dict> 260*67e74705SXin Li// CHECK-NEXT: </array> 261*67e74705SXin Li// CHECK-NEXT: </array> 262*67e74705SXin Li// CHECK-NEXT: <key>depth</key><integer>0</integer> 263*67e74705SXin Li// CHECK-NEXT: <key>extended_message</key> 264*67e74705SXin Li// CHECK-NEXT: <string>'p' initialized to a null pointer value</string> 265*67e74705SXin Li// CHECK-NEXT: <key>message</key> 266*67e74705SXin Li// CHECK-NEXT: <string>'p' initialized to a null pointer value</string> 267*67e74705SXin Li// CHECK-NEXT: </dict> 268*67e74705SXin Li// CHECK-NEXT: <dict> 269*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>control</string> 270*67e74705SXin Li// CHECK-NEXT: <key>edges</key> 271*67e74705SXin Li// CHECK-NEXT: <array> 272*67e74705SXin Li// CHECK-NEXT: <dict> 273*67e74705SXin Li// CHECK-NEXT: <key>start</key> 274*67e74705SXin Li// CHECK-NEXT: <array> 275*67e74705SXin Li// CHECK-NEXT: <dict> 276*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>53</integer> 277*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>3</integer> 278*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 279*67e74705SXin Li// CHECK-NEXT: </dict> 280*67e74705SXin Li// CHECK-NEXT: <dict> 281*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>53</integer> 282*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>5</integer> 283*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 284*67e74705SXin Li// CHECK-NEXT: </dict> 285*67e74705SXin Li// CHECK-NEXT: </array> 286*67e74705SXin Li// CHECK-NEXT: <key>end</key> 287*67e74705SXin Li// CHECK-NEXT: <array> 288*67e74705SXin Li// CHECK-NEXT: <dict> 289*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>54</integer> 290*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>3</integer> 291*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 292*67e74705SXin Li// CHECK-NEXT: </dict> 293*67e74705SXin Li// CHECK-NEXT: <dict> 294*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>54</integer> 295*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>3</integer> 296*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 297*67e74705SXin Li// CHECK-NEXT: </dict> 298*67e74705SXin Li// CHECK-NEXT: </array> 299*67e74705SXin Li// CHECK-NEXT: </dict> 300*67e74705SXin Li// CHECK-NEXT: </array> 301*67e74705SXin Li// CHECK-NEXT: </dict> 302*67e74705SXin Li// CHECK-NEXT: <dict> 303*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>control</string> 304*67e74705SXin Li// CHECK-NEXT: <key>edges</key> 305*67e74705SXin Li// CHECK-NEXT: <array> 306*67e74705SXin Li// CHECK-NEXT: <dict> 307*67e74705SXin Li// CHECK-NEXT: <key>start</key> 308*67e74705SXin Li// CHECK-NEXT: <array> 309*67e74705SXin Li// CHECK-NEXT: <dict> 310*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>54</integer> 311*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>3</integer> 312*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 313*67e74705SXin Li// CHECK-NEXT: </dict> 314*67e74705SXin Li// CHECK-NEXT: <dict> 315*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>54</integer> 316*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>3</integer> 317*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 318*67e74705SXin Li// CHECK-NEXT: </dict> 319*67e74705SXin Li// CHECK-NEXT: </array> 320*67e74705SXin Li// CHECK-NEXT: <key>end</key> 321*67e74705SXin Li// CHECK-NEXT: <array> 322*67e74705SXin Li// CHECK-NEXT: <dict> 323*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>54</integer> 324*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>6</integer> 325*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 326*67e74705SXin Li// CHECK-NEXT: </dict> 327*67e74705SXin Li// CHECK-NEXT: <dict> 328*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>54</integer> 329*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>6</integer> 330*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 331*67e74705SXin Li// CHECK-NEXT: </dict> 332*67e74705SXin Li// CHECK-NEXT: </array> 333*67e74705SXin Li// CHECK-NEXT: </dict> 334*67e74705SXin Li// CHECK-NEXT: </array> 335*67e74705SXin Li// CHECK-NEXT: </dict> 336*67e74705SXin Li// CHECK-NEXT: <dict> 337*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>event</string> 338*67e74705SXin Li// CHECK-NEXT: <key>location</key> 339*67e74705SXin Li// CHECK-NEXT: <dict> 340*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>54</integer> 341*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>6</integer> 342*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 343*67e74705SXin Li// CHECK-NEXT: </dict> 344*67e74705SXin Li// CHECK-NEXT: <key>ranges</key> 345*67e74705SXin Li// CHECK-NEXT: <array> 346*67e74705SXin Li// CHECK-NEXT: <array> 347*67e74705SXin Li// CHECK-NEXT: <dict> 348*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>54</integer> 349*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>4</integer> 350*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 351*67e74705SXin Li// CHECK-NEXT: </dict> 352*67e74705SXin Li// CHECK-NEXT: <dict> 353*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>54</integer> 354*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>4</integer> 355*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 356*67e74705SXin Li// CHECK-NEXT: </dict> 357*67e74705SXin Li// CHECK-NEXT: </array> 358*67e74705SXin Li// CHECK-NEXT: </array> 359*67e74705SXin Li// CHECK-NEXT: <key>depth</key><integer>0</integer> 360*67e74705SXin Li// CHECK-NEXT: <key>extended_message</key> 361*67e74705SXin Li// CHECK-NEXT: <string>Dereference of null pointer (loaded from variable 'p')</string> 362*67e74705SXin Li// CHECK-NEXT: <key>message</key> 363*67e74705SXin Li// CHECK-NEXT: <string>Dereference of null pointer (loaded from variable 'p')</string> 364*67e74705SXin Li// CHECK-NEXT: </dict> 365*67e74705SXin Li// CHECK-NEXT: </array> 366*67e74705SXin Li// CHECK-NEXT: <key>description</key><string>Dereference of null pointer (loaded from variable 'p')</string> 367*67e74705SXin Li// CHECK-NEXT: <key>category</key><string>Logic error</string> 368*67e74705SXin Li// CHECK-NEXT: <key>type</key><string>Dereference of null pointer</string> 369*67e74705SXin Li// CHECK-NEXT: <key>check_name</key><string>core.NullDereference</string> 370*67e74705SXin Li// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 371*67e74705SXin Li// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>b41b510812f2a0d8735c67dfff6a9a5c</string> 372*67e74705SXin Li// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 373*67e74705SXin Li// CHECK-NEXT: <key>issue_context</key><string>test_working</string> 374*67e74705SXin Li// CHECK-NEXT: <key>issue_hash_function_offset</key><string>2</string> 375*67e74705SXin Li// CHECK-NEXT: <key>location</key> 376*67e74705SXin Li// CHECK-NEXT: <dict> 377*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>54</integer> 378*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>6</integer> 379*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 380*67e74705SXin Li// CHECK-NEXT: </dict> 381*67e74705SXin Li// CHECK-NEXT: </dict> 382*67e74705SXin Li// CHECK-NEXT: <dict> 383*67e74705SXin Li// CHECK-NEXT: <key>path</key> 384*67e74705SXin Li// CHECK-NEXT: <array> 385*67e74705SXin Li// CHECK-NEXT: <dict> 386*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>control</string> 387*67e74705SXin Li// CHECK-NEXT: <key>edges</key> 388*67e74705SXin Li// CHECK-NEXT: <array> 389*67e74705SXin Li// CHECK-NEXT: <dict> 390*67e74705SXin Li// CHECK-NEXT: <key>start</key> 391*67e74705SXin Li// CHECK-NEXT: <array> 392*67e74705SXin Li// CHECK-NEXT: <dict> 393*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>93</integer> 394*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>3</integer> 395*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 396*67e74705SXin Li// CHECK-NEXT: </dict> 397*67e74705SXin Li// CHECK-NEXT: <dict> 398*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>93</integer> 399*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>16</integer> 400*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 401*67e74705SXin Li// CHECK-NEXT: </dict> 402*67e74705SXin Li// CHECK-NEXT: </array> 403*67e74705SXin Li// CHECK-NEXT: <key>end</key> 404*67e74705SXin Li// CHECK-NEXT: <array> 405*67e74705SXin Li// CHECK-NEXT: <dict> 406*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>94</integer> 407*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>3</integer> 408*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 409*67e74705SXin Li// CHECK-NEXT: </dict> 410*67e74705SXin Li// CHECK-NEXT: <dict> 411*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>94</integer> 412*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>11</integer> 413*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 414*67e74705SXin Li// CHECK-NEXT: </dict> 415*67e74705SXin Li// CHECK-NEXT: </array> 416*67e74705SXin Li// CHECK-NEXT: </dict> 417*67e74705SXin Li// CHECK-NEXT: </array> 418*67e74705SXin Li// CHECK-NEXT: </dict> 419*67e74705SXin Li// CHECK-NEXT: <dict> 420*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>event</string> 421*67e74705SXin Li// CHECK-NEXT: <key>location</key> 422*67e74705SXin Li// CHECK-NEXT: <dict> 423*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>94</integer> 424*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>20</integer> 425*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 426*67e74705SXin Li// CHECK-NEXT: </dict> 427*67e74705SXin Li// CHECK-NEXT: <key>ranges</key> 428*67e74705SXin Li// CHECK-NEXT: <array> 429*67e74705SXin Li// CHECK-NEXT: <array> 430*67e74705SXin Li// CHECK-NEXT: <dict> 431*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>94</integer> 432*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>20</integer> 433*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 434*67e74705SXin Li// CHECK-NEXT: </dict> 435*67e74705SXin Li// CHECK-NEXT: <dict> 436*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>94</integer> 437*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>37</integer> 438*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 439*67e74705SXin Li// CHECK-NEXT: </dict> 440*67e74705SXin Li// CHECK-NEXT: </array> 441*67e74705SXin Li// CHECK-NEXT: </array> 442*67e74705SXin Li// CHECK-NEXT: <key>depth</key><integer>0</integer> 443*67e74705SXin Li// CHECK-NEXT: <key>extended_message</key> 444*67e74705SXin Li// CHECK-NEXT: <string>Call to function 'CFDateCreate' returns a Core Foundation object with a +1 retain count</string> 445*67e74705SXin Li// CHECK-NEXT: <key>message</key> 446*67e74705SXin Li// CHECK-NEXT: <string>Call to function 'CFDateCreate' returns a Core Foundation object with a +1 retain count</string> 447*67e74705SXin Li// CHECK-NEXT: </dict> 448*67e74705SXin Li// CHECK-NEXT: <dict> 449*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>control</string> 450*67e74705SXin Li// CHECK-NEXT: <key>edges</key> 451*67e74705SXin Li// CHECK-NEXT: <array> 452*67e74705SXin Li// CHECK-NEXT: <dict> 453*67e74705SXin Li// CHECK-NEXT: <key>start</key> 454*67e74705SXin Li// CHECK-NEXT: <array> 455*67e74705SXin Li// CHECK-NEXT: <dict> 456*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>94</integer> 457*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>3</integer> 458*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 459*67e74705SXin Li// CHECK-NEXT: </dict> 460*67e74705SXin Li// CHECK-NEXT: <dict> 461*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>94</integer> 462*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>11</integer> 463*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 464*67e74705SXin Li// CHECK-NEXT: </dict> 465*67e74705SXin Li// CHECK-NEXT: </array> 466*67e74705SXin Li// CHECK-NEXT: <key>end</key> 467*67e74705SXin Li// CHECK-NEXT: <array> 468*67e74705SXin Li// CHECK-NEXT: <dict> 469*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>95</integer> 470*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>3</integer> 471*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 472*67e74705SXin Li// CHECK-NEXT: </dict> 473*67e74705SXin Li// CHECK-NEXT: <dict> 474*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>95</integer> 475*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>3</integer> 476*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 477*67e74705SXin Li// CHECK-NEXT: </dict> 478*67e74705SXin Li// CHECK-NEXT: </array> 479*67e74705SXin Li// CHECK-NEXT: </dict> 480*67e74705SXin Li// CHECK-NEXT: </array> 481*67e74705SXin Li// CHECK-NEXT: </dict> 482*67e74705SXin Li// CHECK-NEXT: <dict> 483*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>control</string> 484*67e74705SXin Li// CHECK-NEXT: <key>edges</key> 485*67e74705SXin Li// CHECK-NEXT: <array> 486*67e74705SXin Li// CHECK-NEXT: <dict> 487*67e74705SXin Li// CHECK-NEXT: <key>start</key> 488*67e74705SXin Li// CHECK-NEXT: <array> 489*67e74705SXin Li// CHECK-NEXT: <dict> 490*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>95</integer> 491*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>3</integer> 492*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 493*67e74705SXin Li// CHECK-NEXT: </dict> 494*67e74705SXin Li// CHECK-NEXT: <dict> 495*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>95</integer> 496*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>3</integer> 497*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 498*67e74705SXin Li// CHECK-NEXT: </dict> 499*67e74705SXin Li// CHECK-NEXT: </array> 500*67e74705SXin Li// CHECK-NEXT: <key>end</key> 501*67e74705SXin Li// CHECK-NEXT: <array> 502*67e74705SXin Li// CHECK-NEXT: <dict> 503*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>96</integer> 504*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>1</integer> 505*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 506*67e74705SXin Li// CHECK-NEXT: </dict> 507*67e74705SXin Li// CHECK-NEXT: <dict> 508*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>96</integer> 509*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>1</integer> 510*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 511*67e74705SXin Li// CHECK-NEXT: </dict> 512*67e74705SXin Li// CHECK-NEXT: </array> 513*67e74705SXin Li// CHECK-NEXT: </dict> 514*67e74705SXin Li// CHECK-NEXT: </array> 515*67e74705SXin Li// CHECK-NEXT: </dict> 516*67e74705SXin Li// CHECK-NEXT: <dict> 517*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>event</string> 518*67e74705SXin Li// CHECK-NEXT: <key>location</key> 519*67e74705SXin Li// CHECK-NEXT: <dict> 520*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>96</integer> 521*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>1</integer> 522*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 523*67e74705SXin Li// CHECK-NEXT: </dict> 524*67e74705SXin Li// CHECK-NEXT: <key>depth</key><integer>0</integer> 525*67e74705SXin Li// CHECK-NEXT: <key>extended_message</key> 526*67e74705SXin Li// CHECK-NEXT: <string>Object leaked: object allocated and stored into 'date' is not referenced later in this execution path and has a retain count of +1</string> 527*67e74705SXin Li// CHECK-NEXT: <key>message</key> 528*67e74705SXin Li// CHECK-NEXT: <string>Object leaked: object allocated and stored into 'date' is not referenced later in this execution path and has a retain count of +1</string> 529*67e74705SXin Li// CHECK-NEXT: </dict> 530*67e74705SXin Li// CHECK-NEXT: </array> 531*67e74705SXin Li// CHECK-NEXT: <key>description</key><string>Potential leak of an object stored into 'date'</string> 532*67e74705SXin Li// CHECK-NEXT: <key>category</key><string>Memory (Core Foundation/Objective-C)</string> 533*67e74705SXin Li// CHECK-NEXT: <key>type</key><string>Leak</string> 534*67e74705SXin Li// CHECK-NEXT: <key>check_name</key><string>osx.cocoa.RetainCount</string> 535*67e74705SXin Li// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 536*67e74705SXin Li// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>61d185b2522d15fb327f6784e0217adf</string> 537*67e74705SXin Li// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 538*67e74705SXin Li// CHECK-NEXT: <key>issue_context</key><string>test_cf_leak</string> 539*67e74705SXin Li// CHECK-NEXT: <key>issue_hash_function_offset</key><string>2</string> 540*67e74705SXin Li// CHECK-NEXT: <key>location</key> 541*67e74705SXin Li// CHECK-NEXT: <dict> 542*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>96</integer> 543*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>1</integer> 544*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 545*67e74705SXin Li// CHECK-NEXT: </dict> 546*67e74705SXin Li// CHECK-NEXT: </dict> 547*67e74705SXin Li// CHECK-NEXT: <dict> 548*67e74705SXin Li// CHECK-NEXT: <key>path</key> 549*67e74705SXin Li// CHECK-NEXT: <array> 550*67e74705SXin Li// CHECK-NEXT: <dict> 551*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>event</string> 552*67e74705SXin Li// CHECK-NEXT: <key>location</key> 553*67e74705SXin Li// CHECK-NEXT: <dict> 554*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>119</integer> 555*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>6</integer> 556*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 557*67e74705SXin Li// CHECK-NEXT: </dict> 558*67e74705SXin Li// CHECK-NEXT: <key>ranges</key> 559*67e74705SXin Li// CHECK-NEXT: <array> 560*67e74705SXin Li// CHECK-NEXT: <array> 561*67e74705SXin Li// CHECK-NEXT: <dict> 562*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>119</integer> 563*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>6</integer> 564*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 565*67e74705SXin Li// CHECK-NEXT: </dict> 566*67e74705SXin Li// CHECK-NEXT: <dict> 567*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>119</integer> 568*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>6</integer> 569*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 570*67e74705SXin Li// CHECK-NEXT: </dict> 571*67e74705SXin Li// CHECK-NEXT: </array> 572*67e74705SXin Li// CHECK-NEXT: <array> 573*67e74705SXin Li// CHECK-NEXT: <dict> 574*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>119</integer> 575*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>10</integer> 576*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 577*67e74705SXin Li// CHECK-NEXT: </dict> 578*67e74705SXin Li// CHECK-NEXT: <dict> 579*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>119</integer> 580*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>25</integer> 581*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 582*67e74705SXin Li// CHECK-NEXT: </dict> 583*67e74705SXin Li// CHECK-NEXT: </array> 584*67e74705SXin Li// CHECK-NEXT: </array> 585*67e74705SXin Li// CHECK-NEXT: <key>depth</key><integer>0</integer> 586*67e74705SXin Li// CHECK-NEXT: <key>extended_message</key> 587*67e74705SXin Li// CHECK-NEXT: <string>Value stored to 'x' during its initialization is never read</string> 588*67e74705SXin Li// CHECK-NEXT: <key>message</key> 589*67e74705SXin Li// CHECK-NEXT: <string>Value stored to 'x' during its initialization is never read</string> 590*67e74705SXin Li// CHECK-NEXT: </dict> 591*67e74705SXin Li// CHECK-NEXT: </array> 592*67e74705SXin Li// CHECK-NEXT: <key>description</key><string>Value stored to 'x' during its initialization is never read</string> 593*67e74705SXin Li// CHECK-NEXT: <key>category</key><string>Dead store</string> 594*67e74705SXin Li// CHECK-NEXT: <key>type</key><string>Dead initialization</string> 595*67e74705SXin Li// CHECK-NEXT: <key>check_name</key><string>deadcode.DeadStores</string> 596*67e74705SXin Li// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 597*67e74705SXin Li// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>63df5972efc8a7acccdbd2aca10c9e9e</string> 598*67e74705SXin Li// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 599*67e74705SXin Li// CHECK-NEXT: <key>issue_context</key><string>rdar9424882</string> 600*67e74705SXin Li// CHECK-NEXT: <key>issue_hash_function_offset</key><string>1</string> 601*67e74705SXin Li// CHECK-NEXT: <key>location</key> 602*67e74705SXin Li// CHECK-NEXT: <dict> 603*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>119</integer> 604*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>6</integer> 605*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 606*67e74705SXin Li// CHECK-NEXT: </dict> 607*67e74705SXin Li// CHECK-NEXT: </dict> 608*67e74705SXin Li// CHECK-NEXT: <dict> 609*67e74705SXin Li// CHECK-NEXT: <key>path</key> 610*67e74705SXin Li// CHECK-NEXT: <array> 611*67e74705SXin Li// CHECK-NEXT: <dict> 612*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>event</string> 613*67e74705SXin Li// CHECK-NEXT: <key>location</key> 614*67e74705SXin Li// CHECK-NEXT: <dict> 615*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>139</integer> 616*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>6</integer> 617*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 618*67e74705SXin Li// CHECK-NEXT: </dict> 619*67e74705SXin Li// CHECK-NEXT: <key>ranges</key> 620*67e74705SXin Li// CHECK-NEXT: <array> 621*67e74705SXin Li// CHECK-NEXT: <array> 622*67e74705SXin Li// CHECK-NEXT: <dict> 623*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>139</integer> 624*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>6</integer> 625*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 626*67e74705SXin Li// CHECK-NEXT: </dict> 627*67e74705SXin Li// CHECK-NEXT: <dict> 628*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>139</integer> 629*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>9</integer> 630*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 631*67e74705SXin Li// CHECK-NEXT: </dict> 632*67e74705SXin Li// CHECK-NEXT: </array> 633*67e74705SXin Li// CHECK-NEXT: <array> 634*67e74705SXin Li// CHECK-NEXT: <dict> 635*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>139</integer> 636*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>13</integer> 637*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 638*67e74705SXin Li// CHECK-NEXT: </dict> 639*67e74705SXin Li// CHECK-NEXT: <dict> 640*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>139</integer> 641*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>53</integer> 642*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 643*67e74705SXin Li// CHECK-NEXT: </dict> 644*67e74705SXin Li// CHECK-NEXT: </array> 645*67e74705SXin Li// CHECK-NEXT: </array> 646*67e74705SXin Li// CHECK-NEXT: <key>depth</key><integer>0</integer> 647*67e74705SXin Li// CHECK-NEXT: <key>extended_message</key> 648*67e74705SXin Li// CHECK-NEXT: <string>Value stored to 'obj1' during its initialization is never read</string> 649*67e74705SXin Li// CHECK-NEXT: <key>message</key> 650*67e74705SXin Li// CHECK-NEXT: <string>Value stored to 'obj1' during its initialization is never read</string> 651*67e74705SXin Li// CHECK-NEXT: </dict> 652*67e74705SXin Li// CHECK-NEXT: </array> 653*67e74705SXin Li// CHECK-NEXT: <key>description</key><string>Value stored to 'obj1' during its initialization is never read</string> 654*67e74705SXin Li// CHECK-NEXT: <key>category</key><string>Dead store</string> 655*67e74705SXin Li// CHECK-NEXT: <key>type</key><string>Dead initialization</string> 656*67e74705SXin Li// CHECK-NEXT: <key>check_name</key><string>deadcode.DeadStores</string> 657*67e74705SXin Li// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 658*67e74705SXin Li// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>125290ceaf2b55f5778c262d87b2b6d5</string> 659*67e74705SXin Li// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 660*67e74705SXin Li// CHECK-NEXT: <key>issue_context</key><string>from_cf</string> 661*67e74705SXin Li// CHECK-NEXT: <key>issue_hash_function_offset</key><string>1</string> 662*67e74705SXin Li// CHECK-NEXT: <key>location</key> 663*67e74705SXin Li// CHECK-NEXT: <dict> 664*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>139</integer> 665*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>6</integer> 666*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 667*67e74705SXin Li// CHECK-NEXT: </dict> 668*67e74705SXin Li// CHECK-NEXT: </dict> 669*67e74705SXin Li// CHECK-NEXT: <dict> 670*67e74705SXin Li// CHECK-NEXT: <key>path</key> 671*67e74705SXin Li// CHECK-NEXT: <array> 672*67e74705SXin Li// CHECK-NEXT: <dict> 673*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>event</string> 674*67e74705SXin Li// CHECK-NEXT: <key>location</key> 675*67e74705SXin Li// CHECK-NEXT: <dict> 676*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>144</integer> 677*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>6</integer> 678*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 679*67e74705SXin Li// CHECK-NEXT: </dict> 680*67e74705SXin Li// CHECK-NEXT: <key>ranges</key> 681*67e74705SXin Li// CHECK-NEXT: <array> 682*67e74705SXin Li// CHECK-NEXT: <array> 683*67e74705SXin Li// CHECK-NEXT: <dict> 684*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>144</integer> 685*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>6</integer> 686*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 687*67e74705SXin Li// CHECK-NEXT: </dict> 688*67e74705SXin Li// CHECK-NEXT: <dict> 689*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>144</integer> 690*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>9</integer> 691*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 692*67e74705SXin Li// CHECK-NEXT: </dict> 693*67e74705SXin Li// CHECK-NEXT: </array> 694*67e74705SXin Li// CHECK-NEXT: <array> 695*67e74705SXin Li// CHECK-NEXT: <dict> 696*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>144</integer> 697*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>13</integer> 698*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 699*67e74705SXin Li// CHECK-NEXT: </dict> 700*67e74705SXin Li// CHECK-NEXT: <dict> 701*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>144</integer> 702*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>45</integer> 703*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 704*67e74705SXin Li// CHECK-NEXT: </dict> 705*67e74705SXin Li// CHECK-NEXT: </array> 706*67e74705SXin Li// CHECK-NEXT: </array> 707*67e74705SXin Li// CHECK-NEXT: <key>depth</key><integer>0</integer> 708*67e74705SXin Li// CHECK-NEXT: <key>extended_message</key> 709*67e74705SXin Li// CHECK-NEXT: <string>Value stored to 'obj4' during its initialization is never read</string> 710*67e74705SXin Li// CHECK-NEXT: <key>message</key> 711*67e74705SXin Li// CHECK-NEXT: <string>Value stored to 'obj4' during its initialization is never read</string> 712*67e74705SXin Li// CHECK-NEXT: </dict> 713*67e74705SXin Li// CHECK-NEXT: </array> 714*67e74705SXin Li// CHECK-NEXT: <key>description</key><string>Value stored to 'obj4' during its initialization is never read</string> 715*67e74705SXin Li// CHECK-NEXT: <key>category</key><string>Dead store</string> 716*67e74705SXin Li// CHECK-NEXT: <key>type</key><string>Dead initialization</string> 717*67e74705SXin Li// CHECK-NEXT: <key>check_name</key><string>deadcode.DeadStores</string> 718*67e74705SXin Li// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 719*67e74705SXin Li// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>54627578ee3b8520400ae899bc32b3d6</string> 720*67e74705SXin Li// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 721*67e74705SXin Li// CHECK-NEXT: <key>issue_context</key><string>from_cf</string> 722*67e74705SXin Li// CHECK-NEXT: <key>issue_hash_function_offset</key><string>6</string> 723*67e74705SXin Li// CHECK-NEXT: <key>location</key> 724*67e74705SXin Li// CHECK-NEXT: <dict> 725*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>144</integer> 726*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>6</integer> 727*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 728*67e74705SXin Li// CHECK-NEXT: </dict> 729*67e74705SXin Li// CHECK-NEXT: </dict> 730*67e74705SXin Li// CHECK-NEXT: <dict> 731*67e74705SXin Li// CHECK-NEXT: <key>path</key> 732*67e74705SXin Li// CHECK-NEXT: <array> 733*67e74705SXin Li// CHECK-NEXT: <dict> 734*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>event</string> 735*67e74705SXin Li// CHECK-NEXT: <key>location</key> 736*67e74705SXin Li// CHECK-NEXT: <dict> 737*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>145</integer> 738*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>6</integer> 739*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 740*67e74705SXin Li// CHECK-NEXT: </dict> 741*67e74705SXin Li// CHECK-NEXT: <key>ranges</key> 742*67e74705SXin Li// CHECK-NEXT: <array> 743*67e74705SXin Li// CHECK-NEXT: <array> 744*67e74705SXin Li// CHECK-NEXT: <dict> 745*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>145</integer> 746*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>6</integer> 747*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 748*67e74705SXin Li// CHECK-NEXT: </dict> 749*67e74705SXin Li// CHECK-NEXT: <dict> 750*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>145</integer> 751*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>9</integer> 752*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 753*67e74705SXin Li// CHECK-NEXT: </dict> 754*67e74705SXin Li// CHECK-NEXT: </array> 755*67e74705SXin Li// CHECK-NEXT: <array> 756*67e74705SXin Li// CHECK-NEXT: <dict> 757*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>145</integer> 758*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>13</integer> 759*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 760*67e74705SXin Li// CHECK-NEXT: </dict> 761*67e74705SXin Li// CHECK-NEXT: <dict> 762*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>145</integer> 763*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>44</integer> 764*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 765*67e74705SXin Li// CHECK-NEXT: </dict> 766*67e74705SXin Li// CHECK-NEXT: </array> 767*67e74705SXin Li// CHECK-NEXT: </array> 768*67e74705SXin Li// CHECK-NEXT: <key>depth</key><integer>0</integer> 769*67e74705SXin Li// CHECK-NEXT: <key>extended_message</key> 770*67e74705SXin Li// CHECK-NEXT: <string>Value stored to 'obj5' during its initialization is never read</string> 771*67e74705SXin Li// CHECK-NEXT: <key>message</key> 772*67e74705SXin Li// CHECK-NEXT: <string>Value stored to 'obj5' during its initialization is never read</string> 773*67e74705SXin Li// CHECK-NEXT: </dict> 774*67e74705SXin Li// CHECK-NEXT: </array> 775*67e74705SXin Li// CHECK-NEXT: <key>description</key><string>Value stored to 'obj5' during its initialization is never read</string> 776*67e74705SXin Li// CHECK-NEXT: <key>category</key><string>Dead store</string> 777*67e74705SXin Li// CHECK-NEXT: <key>type</key><string>Dead initialization</string> 778*67e74705SXin Li// CHECK-NEXT: <key>check_name</key><string>deadcode.DeadStores</string> 779*67e74705SXin Li// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 780*67e74705SXin Li// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>27c31d7f5825a1613c0206b5be082800</string> 781*67e74705SXin Li// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 782*67e74705SXin Li// CHECK-NEXT: <key>issue_context</key><string>from_cf</string> 783*67e74705SXin Li// CHECK-NEXT: <key>issue_hash_function_offset</key><string>7</string> 784*67e74705SXin Li// CHECK-NEXT: <key>location</key> 785*67e74705SXin Li// CHECK-NEXT: <dict> 786*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>145</integer> 787*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>6</integer> 788*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 789*67e74705SXin Li// CHECK-NEXT: </dict> 790*67e74705SXin Li// CHECK-NEXT: </dict> 791*67e74705SXin Li// CHECK-NEXT: <dict> 792*67e74705SXin Li// CHECK-NEXT: <key>path</key> 793*67e74705SXin Li// CHECK-NEXT: <array> 794*67e74705SXin Li// CHECK-NEXT: <dict> 795*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>event</string> 796*67e74705SXin Li// CHECK-NEXT: <key>location</key> 797*67e74705SXin Li// CHECK-NEXT: <dict> 798*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>146</integer> 799*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>6</integer> 800*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 801*67e74705SXin Li// CHECK-NEXT: </dict> 802*67e74705SXin Li// CHECK-NEXT: <key>ranges</key> 803*67e74705SXin Li// CHECK-NEXT: <array> 804*67e74705SXin Li// CHECK-NEXT: <array> 805*67e74705SXin Li// CHECK-NEXT: <dict> 806*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>146</integer> 807*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>6</integer> 808*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 809*67e74705SXin Li// CHECK-NEXT: </dict> 810*67e74705SXin Li// CHECK-NEXT: <dict> 811*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>146</integer> 812*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>9</integer> 813*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 814*67e74705SXin Li// CHECK-NEXT: </dict> 815*67e74705SXin Li// CHECK-NEXT: </array> 816*67e74705SXin Li// CHECK-NEXT: <array> 817*67e74705SXin Li// CHECK-NEXT: <dict> 818*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>146</integer> 819*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>13</integer> 820*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 821*67e74705SXin Li// CHECK-NEXT: </dict> 822*67e74705SXin Li// CHECK-NEXT: <dict> 823*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>146</integer> 824*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>48</integer> 825*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 826*67e74705SXin Li// CHECK-NEXT: </dict> 827*67e74705SXin Li// CHECK-NEXT: </array> 828*67e74705SXin Li// CHECK-NEXT: </array> 829*67e74705SXin Li// CHECK-NEXT: <key>depth</key><integer>0</integer> 830*67e74705SXin Li// CHECK-NEXT: <key>extended_message</key> 831*67e74705SXin Li// CHECK-NEXT: <string>Value stored to 'obj6' during its initialization is never read</string> 832*67e74705SXin Li// CHECK-NEXT: <key>message</key> 833*67e74705SXin Li// CHECK-NEXT: <string>Value stored to 'obj6' during its initialization is never read</string> 834*67e74705SXin Li// CHECK-NEXT: </dict> 835*67e74705SXin Li// CHECK-NEXT: </array> 836*67e74705SXin Li// CHECK-NEXT: <key>description</key><string>Value stored to 'obj6' during its initialization is never read</string> 837*67e74705SXin Li// CHECK-NEXT: <key>category</key><string>Dead store</string> 838*67e74705SXin Li// CHECK-NEXT: <key>type</key><string>Dead initialization</string> 839*67e74705SXin Li// CHECK-NEXT: <key>check_name</key><string>deadcode.DeadStores</string> 840*67e74705SXin Li// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 841*67e74705SXin Li// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>a59b85c1e38300cb17eaeedcf193f94b</string> 842*67e74705SXin Li// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 843*67e74705SXin Li// CHECK-NEXT: <key>issue_context</key><string>from_cf</string> 844*67e74705SXin Li// CHECK-NEXT: <key>issue_hash_function_offset</key><string>8</string> 845*67e74705SXin Li// CHECK-NEXT: <key>location</key> 846*67e74705SXin Li// CHECK-NEXT: <dict> 847*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>146</integer> 848*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>6</integer> 849*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 850*67e74705SXin Li// CHECK-NEXT: </dict> 851*67e74705SXin Li// CHECK-NEXT: </dict> 852*67e74705SXin Li// CHECK-NEXT: <dict> 853*67e74705SXin Li// CHECK-NEXT: <key>path</key> 854*67e74705SXin Li// CHECK-NEXT: <array> 855*67e74705SXin Li// CHECK-NEXT: <dict> 856*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>control</string> 857*67e74705SXin Li// CHECK-NEXT: <key>edges</key> 858*67e74705SXin Li// CHECK-NEXT: <array> 859*67e74705SXin Li// CHECK-NEXT: <dict> 860*67e74705SXin Li// CHECK-NEXT: <key>start</key> 861*67e74705SXin Li// CHECK-NEXT: <array> 862*67e74705SXin Li// CHECK-NEXT: <dict> 863*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>139</integer> 864*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>3</integer> 865*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 866*67e74705SXin Li// CHECK-NEXT: </dict> 867*67e74705SXin Li// CHECK-NEXT: <dict> 868*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>139</integer> 869*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>4</integer> 870*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 871*67e74705SXin Li// CHECK-NEXT: </dict> 872*67e74705SXin Li// CHECK-NEXT: </array> 873*67e74705SXin Li// CHECK-NEXT: <key>end</key> 874*67e74705SXin Li// CHECK-NEXT: <array> 875*67e74705SXin Li// CHECK-NEXT: <dict> 876*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>145</integer> 877*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>3</integer> 878*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 879*67e74705SXin Li// CHECK-NEXT: </dict> 880*67e74705SXin Li// CHECK-NEXT: <dict> 881*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>145</integer> 882*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>4</integer> 883*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 884*67e74705SXin Li// CHECK-NEXT: </dict> 885*67e74705SXin Li// CHECK-NEXT: </array> 886*67e74705SXin Li// CHECK-NEXT: </dict> 887*67e74705SXin Li// CHECK-NEXT: </array> 888*67e74705SXin Li// CHECK-NEXT: </dict> 889*67e74705SXin Li// CHECK-NEXT: <dict> 890*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>event</string> 891*67e74705SXin Li// CHECK-NEXT: <key>location</key> 892*67e74705SXin Li// CHECK-NEXT: <dict> 893*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>145</integer> 894*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>26</integer> 895*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 896*67e74705SXin Li// CHECK-NEXT: </dict> 897*67e74705SXin Li// CHECK-NEXT: <key>ranges</key> 898*67e74705SXin Li// CHECK-NEXT: <array> 899*67e74705SXin Li// CHECK-NEXT: <array> 900*67e74705SXin Li// CHECK-NEXT: <dict> 901*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>145</integer> 902*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>26</integer> 903*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 904*67e74705SXin Li// CHECK-NEXT: </dict> 905*67e74705SXin Li// CHECK-NEXT: <dict> 906*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>145</integer> 907*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>44</integer> 908*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 909*67e74705SXin Li// CHECK-NEXT: </dict> 910*67e74705SXin Li// CHECK-NEXT: </array> 911*67e74705SXin Li// CHECK-NEXT: </array> 912*67e74705SXin Li// CHECK-NEXT: <key>depth</key><integer>0</integer> 913*67e74705SXin Li// CHECK-NEXT: <key>extended_message</key> 914*67e74705SXin Li// CHECK-NEXT: <string>Call to function 'CFCreateSomething' returns a Core Foundation object with a +1 retain count</string> 915*67e74705SXin Li// CHECK-NEXT: <key>message</key> 916*67e74705SXin Li// CHECK-NEXT: <string>Call to function 'CFCreateSomething' returns a Core Foundation object with a +1 retain count</string> 917*67e74705SXin Li// CHECK-NEXT: </dict> 918*67e74705SXin Li// CHECK-NEXT: <dict> 919*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>control</string> 920*67e74705SXin Li// CHECK-NEXT: <key>edges</key> 921*67e74705SXin Li// CHECK-NEXT: <array> 922*67e74705SXin Li// CHECK-NEXT: <dict> 923*67e74705SXin Li// CHECK-NEXT: <key>start</key> 924*67e74705SXin Li// CHECK-NEXT: <array> 925*67e74705SXin Li// CHECK-NEXT: <dict> 926*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>145</integer> 927*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>3</integer> 928*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 929*67e74705SXin Li// CHECK-NEXT: </dict> 930*67e74705SXin Li// CHECK-NEXT: <dict> 931*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>145</integer> 932*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>4</integer> 933*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 934*67e74705SXin Li// CHECK-NEXT: </dict> 935*67e74705SXin Li// CHECK-NEXT: </array> 936*67e74705SXin Li// CHECK-NEXT: <key>end</key> 937*67e74705SXin Li// CHECK-NEXT: <array> 938*67e74705SXin Li// CHECK-NEXT: <dict> 939*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>146</integer> 940*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>3</integer> 941*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 942*67e74705SXin Li// CHECK-NEXT: </dict> 943*67e74705SXin Li// CHECK-NEXT: <dict> 944*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>146</integer> 945*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>4</integer> 946*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 947*67e74705SXin Li// CHECK-NEXT: </dict> 948*67e74705SXin Li// CHECK-NEXT: </array> 949*67e74705SXin Li// CHECK-NEXT: </dict> 950*67e74705SXin Li// CHECK-NEXT: </array> 951*67e74705SXin Li// CHECK-NEXT: </dict> 952*67e74705SXin Li// CHECK-NEXT: <dict> 953*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>control</string> 954*67e74705SXin Li// CHECK-NEXT: <key>edges</key> 955*67e74705SXin Li// CHECK-NEXT: <array> 956*67e74705SXin Li// CHECK-NEXT: <dict> 957*67e74705SXin Li// CHECK-NEXT: <key>start</key> 958*67e74705SXin Li// CHECK-NEXT: <array> 959*67e74705SXin Li// CHECK-NEXT: <dict> 960*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>146</integer> 961*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>3</integer> 962*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 963*67e74705SXin Li// CHECK-NEXT: </dict> 964*67e74705SXin Li// CHECK-NEXT: <dict> 965*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>146</integer> 966*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>4</integer> 967*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 968*67e74705SXin Li// CHECK-NEXT: </dict> 969*67e74705SXin Li// CHECK-NEXT: </array> 970*67e74705SXin Li// CHECK-NEXT: <key>end</key> 971*67e74705SXin Li// CHECK-NEXT: <array> 972*67e74705SXin Li// CHECK-NEXT: <dict> 973*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>146</integer> 974*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>33</integer> 975*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 976*67e74705SXin Li// CHECK-NEXT: </dict> 977*67e74705SXin Li// CHECK-NEXT: <dict> 978*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>146</integer> 979*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>46</integer> 980*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 981*67e74705SXin Li// CHECK-NEXT: </dict> 982*67e74705SXin Li// CHECK-NEXT: </array> 983*67e74705SXin Li// CHECK-NEXT: </dict> 984*67e74705SXin Li// CHECK-NEXT: </array> 985*67e74705SXin Li// CHECK-NEXT: </dict> 986*67e74705SXin Li// CHECK-NEXT: <dict> 987*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>event</string> 988*67e74705SXin Li// CHECK-NEXT: <key>location</key> 989*67e74705SXin Li// CHECK-NEXT: <dict> 990*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>146</integer> 991*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>33</integer> 992*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 993*67e74705SXin Li// CHECK-NEXT: </dict> 994*67e74705SXin Li// CHECK-NEXT: <key>ranges</key> 995*67e74705SXin Li// CHECK-NEXT: <array> 996*67e74705SXin Li// CHECK-NEXT: <array> 997*67e74705SXin Li// CHECK-NEXT: <dict> 998*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>146</integer> 999*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>33</integer> 1000*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1001*67e74705SXin Li// CHECK-NEXT: </dict> 1002*67e74705SXin Li// CHECK-NEXT: <dict> 1003*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>146</integer> 1004*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>48</integer> 1005*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1006*67e74705SXin Li// CHECK-NEXT: </dict> 1007*67e74705SXin Li// CHECK-NEXT: </array> 1008*67e74705SXin Li// CHECK-NEXT: </array> 1009*67e74705SXin Li// CHECK-NEXT: <key>depth</key><integer>0</integer> 1010*67e74705SXin Li// CHECK-NEXT: <key>extended_message</key> 1011*67e74705SXin Li// CHECK-NEXT: <string>Object leaked: object allocated and stored into 'obj5' is not referenced later in this execution path and has a retain count of +1</string> 1012*67e74705SXin Li// CHECK-NEXT: <key>message</key> 1013*67e74705SXin Li// CHECK-NEXT: <string>Object leaked: object allocated and stored into 'obj5' is not referenced later in this execution path and has a retain count of +1</string> 1014*67e74705SXin Li// CHECK-NEXT: </dict> 1015*67e74705SXin Li// CHECK-NEXT: </array> 1016*67e74705SXin Li// CHECK-NEXT: <key>description</key><string>Potential leak of an object stored into 'obj5'</string> 1017*67e74705SXin Li// CHECK-NEXT: <key>category</key><string>Memory (Core Foundation/Objective-C)</string> 1018*67e74705SXin Li// CHECK-NEXT: <key>type</key><string>Leak</string> 1019*67e74705SXin Li// CHECK-NEXT: <key>check_name</key><string>osx.cocoa.RetainCount</string> 1020*67e74705SXin Li// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 1021*67e74705SXin Li// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>5baa7d5f38420d0a035aa61607675f3e</string> 1022*67e74705SXin Li// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 1023*67e74705SXin Li// CHECK-NEXT: <key>issue_context</key><string>from_cf</string> 1024*67e74705SXin Li// CHECK-NEXT: <key>issue_hash_function_offset</key><string>7</string> 1025*67e74705SXin Li// CHECK-NEXT: <key>location</key> 1026*67e74705SXin Li// CHECK-NEXT: <dict> 1027*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>146</integer> 1028*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>33</integer> 1029*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1030*67e74705SXin Li// CHECK-NEXT: </dict> 1031*67e74705SXin Li// CHECK-NEXT: </dict> 1032*67e74705SXin Li// CHECK-NEXT: <dict> 1033*67e74705SXin Li// CHECK-NEXT: <key>path</key> 1034*67e74705SXin Li// CHECK-NEXT: <array> 1035*67e74705SXin Li// CHECK-NEXT: <dict> 1036*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>control</string> 1037*67e74705SXin Li// CHECK-NEXT: <key>edges</key> 1038*67e74705SXin Li// CHECK-NEXT: <array> 1039*67e74705SXin Li// CHECK-NEXT: <dict> 1040*67e74705SXin Li// CHECK-NEXT: <key>start</key> 1041*67e74705SXin Li// CHECK-NEXT: <array> 1042*67e74705SXin Li// CHECK-NEXT: <dict> 1043*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>139</integer> 1044*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>3</integer> 1045*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1046*67e74705SXin Li// CHECK-NEXT: </dict> 1047*67e74705SXin Li// CHECK-NEXT: <dict> 1048*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>139</integer> 1049*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>4</integer> 1050*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1051*67e74705SXin Li// CHECK-NEXT: </dict> 1052*67e74705SXin Li// CHECK-NEXT: </array> 1053*67e74705SXin Li// CHECK-NEXT: <key>end</key> 1054*67e74705SXin Li// CHECK-NEXT: <array> 1055*67e74705SXin Li// CHECK-NEXT: <dict> 1056*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>146</integer> 1057*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>3</integer> 1058*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1059*67e74705SXin Li// CHECK-NEXT: </dict> 1060*67e74705SXin Li// CHECK-NEXT: <dict> 1061*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>146</integer> 1062*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>4</integer> 1063*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1064*67e74705SXin Li// CHECK-NEXT: </dict> 1065*67e74705SXin Li// CHECK-NEXT: </array> 1066*67e74705SXin Li// CHECK-NEXT: </dict> 1067*67e74705SXin Li// CHECK-NEXT: </array> 1068*67e74705SXin Li// CHECK-NEXT: </dict> 1069*67e74705SXin Li// CHECK-NEXT: <dict> 1070*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>event</string> 1071*67e74705SXin Li// CHECK-NEXT: <key>location</key> 1072*67e74705SXin Li// CHECK-NEXT: <dict> 1073*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>146</integer> 1074*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>33</integer> 1075*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1076*67e74705SXin Li// CHECK-NEXT: </dict> 1077*67e74705SXin Li// CHECK-NEXT: <key>ranges</key> 1078*67e74705SXin Li// CHECK-NEXT: <array> 1079*67e74705SXin Li// CHECK-NEXT: <array> 1080*67e74705SXin Li// CHECK-NEXT: <dict> 1081*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>146</integer> 1082*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>33</integer> 1083*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1084*67e74705SXin Li// CHECK-NEXT: </dict> 1085*67e74705SXin Li// CHECK-NEXT: <dict> 1086*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>146</integer> 1087*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>48</integer> 1088*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1089*67e74705SXin Li// CHECK-NEXT: </dict> 1090*67e74705SXin Li// CHECK-NEXT: </array> 1091*67e74705SXin Li// CHECK-NEXT: </array> 1092*67e74705SXin Li// CHECK-NEXT: <key>depth</key><integer>0</integer> 1093*67e74705SXin Li// CHECK-NEXT: <key>extended_message</key> 1094*67e74705SXin Li// CHECK-NEXT: <string>Call to function 'CFCreateString' returns a Core Foundation object with a +1 retain count</string> 1095*67e74705SXin Li// CHECK-NEXT: <key>message</key> 1096*67e74705SXin Li// CHECK-NEXT: <string>Call to function 'CFCreateString' returns a Core Foundation object with a +1 retain count</string> 1097*67e74705SXin Li// CHECK-NEXT: </dict> 1098*67e74705SXin Li// CHECK-NEXT: <dict> 1099*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>control</string> 1100*67e74705SXin Li// CHECK-NEXT: <key>edges</key> 1101*67e74705SXin Li// CHECK-NEXT: <array> 1102*67e74705SXin Li// CHECK-NEXT: <dict> 1103*67e74705SXin Li// CHECK-NEXT: <key>start</key> 1104*67e74705SXin Li// CHECK-NEXT: <array> 1105*67e74705SXin Li// CHECK-NEXT: <dict> 1106*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>146</integer> 1107*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>3</integer> 1108*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1109*67e74705SXin Li// CHECK-NEXT: </dict> 1110*67e74705SXin Li// CHECK-NEXT: <dict> 1111*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>146</integer> 1112*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>4</integer> 1113*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1114*67e74705SXin Li// CHECK-NEXT: </dict> 1115*67e74705SXin Li// CHECK-NEXT: </array> 1116*67e74705SXin Li// CHECK-NEXT: <key>end</key> 1117*67e74705SXin Li// CHECK-NEXT: <array> 1118*67e74705SXin Li// CHECK-NEXT: <dict> 1119*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>147</integer> 1120*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>1</integer> 1121*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1122*67e74705SXin Li// CHECK-NEXT: </dict> 1123*67e74705SXin Li// CHECK-NEXT: <dict> 1124*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>147</integer> 1125*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>1</integer> 1126*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1127*67e74705SXin Li// CHECK-NEXT: </dict> 1128*67e74705SXin Li// CHECK-NEXT: </array> 1129*67e74705SXin Li// CHECK-NEXT: </dict> 1130*67e74705SXin Li// CHECK-NEXT: </array> 1131*67e74705SXin Li// CHECK-NEXT: </dict> 1132*67e74705SXin Li// CHECK-NEXT: <dict> 1133*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>event</string> 1134*67e74705SXin Li// CHECK-NEXT: <key>location</key> 1135*67e74705SXin Li// CHECK-NEXT: <dict> 1136*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>147</integer> 1137*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>1</integer> 1138*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1139*67e74705SXin Li// CHECK-NEXT: </dict> 1140*67e74705SXin Li// CHECK-NEXT: <key>depth</key><integer>0</integer> 1141*67e74705SXin Li// CHECK-NEXT: <key>extended_message</key> 1142*67e74705SXin Li// CHECK-NEXT: <string>Object leaked: object allocated and stored into 'obj6' is not referenced later in this execution path and has a retain count of +1</string> 1143*67e74705SXin Li// CHECK-NEXT: <key>message</key> 1144*67e74705SXin Li// CHECK-NEXT: <string>Object leaked: object allocated and stored into 'obj6' is not referenced later in this execution path and has a retain count of +1</string> 1145*67e74705SXin Li// CHECK-NEXT: </dict> 1146*67e74705SXin Li// CHECK-NEXT: </array> 1147*67e74705SXin Li// CHECK-NEXT: <key>description</key><string>Potential leak of an object stored into 'obj6'</string> 1148*67e74705SXin Li// CHECK-NEXT: <key>category</key><string>Memory (Core Foundation/Objective-C)</string> 1149*67e74705SXin Li// CHECK-NEXT: <key>type</key><string>Leak</string> 1150*67e74705SXin Li// CHECK-NEXT: <key>check_name</key><string>osx.cocoa.RetainCount</string> 1151*67e74705SXin Li// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 1152*67e74705SXin Li// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>4665e04694fd55e7c4ed7a67860b3b74</string> 1153*67e74705SXin Li// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 1154*67e74705SXin Li// CHECK-NEXT: <key>issue_context</key><string>from_cf</string> 1155*67e74705SXin Li// CHECK-NEXT: <key>issue_hash_function_offset</key><string>8</string> 1156*67e74705SXin Li// CHECK-NEXT: <key>location</key> 1157*67e74705SXin Li// CHECK-NEXT: <dict> 1158*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>147</integer> 1159*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>1</integer> 1160*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1161*67e74705SXin Li// CHECK-NEXT: </dict> 1162*67e74705SXin Li// CHECK-NEXT: </dict> 1163*67e74705SXin Li// CHECK-NEXT: <dict> 1164*67e74705SXin Li// CHECK-NEXT: <key>path</key> 1165*67e74705SXin Li// CHECK-NEXT: <array> 1166*67e74705SXin Li// CHECK-NEXT: <dict> 1167*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>event</string> 1168*67e74705SXin Li// CHECK-NEXT: <key>location</key> 1169*67e74705SXin Li// CHECK-NEXT: <dict> 1170*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>150</integer> 1171*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>13</integer> 1172*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1173*67e74705SXin Li// CHECK-NEXT: </dict> 1174*67e74705SXin Li// CHECK-NEXT: <key>ranges</key> 1175*67e74705SXin Li// CHECK-NEXT: <array> 1176*67e74705SXin Li// CHECK-NEXT: <array> 1177*67e74705SXin Li// CHECK-NEXT: <dict> 1178*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>150</integer> 1179*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>13</integer> 1180*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1181*67e74705SXin Li// CHECK-NEXT: </dict> 1182*67e74705SXin Li// CHECK-NEXT: <dict> 1183*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>150</integer> 1184*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>15</integer> 1185*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1186*67e74705SXin Li// CHECK-NEXT: </dict> 1187*67e74705SXin Li// CHECK-NEXT: </array> 1188*67e74705SXin Li// CHECK-NEXT: <array> 1189*67e74705SXin Li// CHECK-NEXT: <dict> 1190*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>150</integer> 1191*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>19</integer> 1192*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1193*67e74705SXin Li// CHECK-NEXT: </dict> 1194*67e74705SXin Li// CHECK-NEXT: <dict> 1195*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>150</integer> 1196*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>64</integer> 1197*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1198*67e74705SXin Li// CHECK-NEXT: </dict> 1199*67e74705SXin Li// CHECK-NEXT: </array> 1200*67e74705SXin Li// CHECK-NEXT: </array> 1201*67e74705SXin Li// CHECK-NEXT: <key>depth</key><integer>0</integer> 1202*67e74705SXin Li// CHECK-NEXT: <key>extended_message</key> 1203*67e74705SXin Li// CHECK-NEXT: <string>Value stored to 'cf1' during its initialization is never read</string> 1204*67e74705SXin Li// CHECK-NEXT: <key>message</key> 1205*67e74705SXin Li// CHECK-NEXT: <string>Value stored to 'cf1' during its initialization is never read</string> 1206*67e74705SXin Li// CHECK-NEXT: </dict> 1207*67e74705SXin Li// CHECK-NEXT: </array> 1208*67e74705SXin Li// CHECK-NEXT: <key>description</key><string>Value stored to 'cf1' during its initialization is never read</string> 1209*67e74705SXin Li// CHECK-NEXT: <key>category</key><string>Dead store</string> 1210*67e74705SXin Li// CHECK-NEXT: <key>type</key><string>Dead initialization</string> 1211*67e74705SXin Li// CHECK-NEXT: <key>check_name</key><string>deadcode.DeadStores</string> 1212*67e74705SXin Li// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 1213*67e74705SXin Li// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>70a67cc8fefa3ad133a35c3ffb579b9e</string> 1214*67e74705SXin Li// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 1215*67e74705SXin Li// CHECK-NEXT: <key>issue_context</key><string>to_cf</string> 1216*67e74705SXin Li// CHECK-NEXT: <key>issue_hash_function_offset</key><string>1</string> 1217*67e74705SXin Li// CHECK-NEXT: <key>location</key> 1218*67e74705SXin Li// CHECK-NEXT: <dict> 1219*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>150</integer> 1220*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>13</integer> 1221*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1222*67e74705SXin Li// CHECK-NEXT: </dict> 1223*67e74705SXin Li// CHECK-NEXT: </dict> 1224*67e74705SXin Li// CHECK-NEXT: <dict> 1225*67e74705SXin Li// CHECK-NEXT: <key>path</key> 1226*67e74705SXin Li// CHECK-NEXT: <array> 1227*67e74705SXin Li// CHECK-NEXT: <dict> 1228*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>event</string> 1229*67e74705SXin Li// CHECK-NEXT: <key>location</key> 1230*67e74705SXin Li// CHECK-NEXT: <dict> 1231*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>151</integer> 1232*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>15</integer> 1233*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1234*67e74705SXin Li// CHECK-NEXT: </dict> 1235*67e74705SXin Li// CHECK-NEXT: <key>ranges</key> 1236*67e74705SXin Li// CHECK-NEXT: <array> 1237*67e74705SXin Li// CHECK-NEXT: <array> 1238*67e74705SXin Li// CHECK-NEXT: <dict> 1239*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>151</integer> 1240*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>15</integer> 1241*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1242*67e74705SXin Li// CHECK-NEXT: </dict> 1243*67e74705SXin Li// CHECK-NEXT: <dict> 1244*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>151</integer> 1245*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>17</integer> 1246*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1247*67e74705SXin Li// CHECK-NEXT: </dict> 1248*67e74705SXin Li// CHECK-NEXT: </array> 1249*67e74705SXin Li// CHECK-NEXT: <array> 1250*67e74705SXin Li// CHECK-NEXT: <dict> 1251*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>151</integer> 1252*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>21</integer> 1253*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1254*67e74705SXin Li// CHECK-NEXT: </dict> 1255*67e74705SXin Li// CHECK-NEXT: <dict> 1256*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>151</integer> 1257*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>67</integer> 1258*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1259*67e74705SXin Li// CHECK-NEXT: </dict> 1260*67e74705SXin Li// CHECK-NEXT: </array> 1261*67e74705SXin Li// CHECK-NEXT: </array> 1262*67e74705SXin Li// CHECK-NEXT: <key>depth</key><integer>0</integer> 1263*67e74705SXin Li// CHECK-NEXT: <key>extended_message</key> 1264*67e74705SXin Li// CHECK-NEXT: <string>Value stored to 'cf2' during its initialization is never read</string> 1265*67e74705SXin Li// CHECK-NEXT: <key>message</key> 1266*67e74705SXin Li// CHECK-NEXT: <string>Value stored to 'cf2' during its initialization is never read</string> 1267*67e74705SXin Li// CHECK-NEXT: </dict> 1268*67e74705SXin Li// CHECK-NEXT: </array> 1269*67e74705SXin Li// CHECK-NEXT: <key>description</key><string>Value stored to 'cf2' during its initialization is never read</string> 1270*67e74705SXin Li// CHECK-NEXT: <key>category</key><string>Dead store</string> 1271*67e74705SXin Li// CHECK-NEXT: <key>type</key><string>Dead initialization</string> 1272*67e74705SXin Li// CHECK-NEXT: <key>check_name</key><string>deadcode.DeadStores</string> 1273*67e74705SXin Li// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 1274*67e74705SXin Li// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>afc41cacb8f32bfbe4a4152f20cec5bc</string> 1275*67e74705SXin Li// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 1276*67e74705SXin Li// CHECK-NEXT: <key>issue_context</key><string>to_cf</string> 1277*67e74705SXin Li// CHECK-NEXT: <key>issue_hash_function_offset</key><string>2</string> 1278*67e74705SXin Li// CHECK-NEXT: <key>location</key> 1279*67e74705SXin Li// CHECK-NEXT: <dict> 1280*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>151</integer> 1281*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>15</integer> 1282*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1283*67e74705SXin Li// CHECK-NEXT: </dict> 1284*67e74705SXin Li// CHECK-NEXT: </dict> 1285*67e74705SXin Li// CHECK-NEXT: <dict> 1286*67e74705SXin Li// CHECK-NEXT: <key>path</key> 1287*67e74705SXin Li// CHECK-NEXT: <array> 1288*67e74705SXin Li// CHECK-NEXT: <dict> 1289*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>event</string> 1290*67e74705SXin Li// CHECK-NEXT: <key>location</key> 1291*67e74705SXin Li// CHECK-NEXT: <dict> 1292*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>152</integer> 1293*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>13</integer> 1294*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1295*67e74705SXin Li// CHECK-NEXT: </dict> 1296*67e74705SXin Li// CHECK-NEXT: <key>ranges</key> 1297*67e74705SXin Li// CHECK-NEXT: <array> 1298*67e74705SXin Li// CHECK-NEXT: <array> 1299*67e74705SXin Li// CHECK-NEXT: <dict> 1300*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>152</integer> 1301*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>13</integer> 1302*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1303*67e74705SXin Li// CHECK-NEXT: </dict> 1304*67e74705SXin Li// CHECK-NEXT: <dict> 1305*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>152</integer> 1306*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>15</integer> 1307*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1308*67e74705SXin Li// CHECK-NEXT: </dict> 1309*67e74705SXin Li// CHECK-NEXT: </array> 1310*67e74705SXin Li// CHECK-NEXT: <array> 1311*67e74705SXin Li// CHECK-NEXT: <dict> 1312*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>152</integer> 1313*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>19</integer> 1314*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1315*67e74705SXin Li// CHECK-NEXT: </dict> 1316*67e74705SXin Li// CHECK-NEXT: <dict> 1317*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>152</integer> 1318*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>55</integer> 1319*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1320*67e74705SXin Li// CHECK-NEXT: </dict> 1321*67e74705SXin Li// CHECK-NEXT: </array> 1322*67e74705SXin Li// CHECK-NEXT: </array> 1323*67e74705SXin Li// CHECK-NEXT: <key>depth</key><integer>0</integer> 1324*67e74705SXin Li// CHECK-NEXT: <key>extended_message</key> 1325*67e74705SXin Li// CHECK-NEXT: <string>Value stored to 'cf3' during its initialization is never read</string> 1326*67e74705SXin Li// CHECK-NEXT: <key>message</key> 1327*67e74705SXin Li// CHECK-NEXT: <string>Value stored to 'cf3' during its initialization is never read</string> 1328*67e74705SXin Li// CHECK-NEXT: </dict> 1329*67e74705SXin Li// CHECK-NEXT: </array> 1330*67e74705SXin Li// CHECK-NEXT: <key>description</key><string>Value stored to 'cf3' during its initialization is never read</string> 1331*67e74705SXin Li// CHECK-NEXT: <key>category</key><string>Dead store</string> 1332*67e74705SXin Li// CHECK-NEXT: <key>type</key><string>Dead initialization</string> 1333*67e74705SXin Li// CHECK-NEXT: <key>check_name</key><string>deadcode.DeadStores</string> 1334*67e74705SXin Li// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 1335*67e74705SXin Li// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>e512cd0ada59beca5acfa53e2a632670</string> 1336*67e74705SXin Li// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 1337*67e74705SXin Li// CHECK-NEXT: <key>issue_context</key><string>to_cf</string> 1338*67e74705SXin Li// CHECK-NEXT: <key>issue_hash_function_offset</key><string>3</string> 1339*67e74705SXin Li// CHECK-NEXT: <key>location</key> 1340*67e74705SXin Li// CHECK-NEXT: <dict> 1341*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>152</integer> 1342*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>13</integer> 1343*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1344*67e74705SXin Li// CHECK-NEXT: </dict> 1345*67e74705SXin Li// CHECK-NEXT: </dict> 1346*67e74705SXin Li// CHECK-NEXT: <dict> 1347*67e74705SXin Li// CHECK-NEXT: <key>path</key> 1348*67e74705SXin Li// CHECK-NEXT: <array> 1349*67e74705SXin Li// CHECK-NEXT: <dict> 1350*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>event</string> 1351*67e74705SXin Li// CHECK-NEXT: <key>location</key> 1352*67e74705SXin Li// CHECK-NEXT: <dict> 1353*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>153</integer> 1354*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>15</integer> 1355*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1356*67e74705SXin Li// CHECK-NEXT: </dict> 1357*67e74705SXin Li// CHECK-NEXT: <key>ranges</key> 1358*67e74705SXin Li// CHECK-NEXT: <array> 1359*67e74705SXin Li// CHECK-NEXT: <array> 1360*67e74705SXin Li// CHECK-NEXT: <dict> 1361*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>153</integer> 1362*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>15</integer> 1363*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1364*67e74705SXin Li// CHECK-NEXT: </dict> 1365*67e74705SXin Li// CHECK-NEXT: <dict> 1366*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>153</integer> 1367*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>17</integer> 1368*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1369*67e74705SXin Li// CHECK-NEXT: </dict> 1370*67e74705SXin Li// CHECK-NEXT: </array> 1371*67e74705SXin Li// CHECK-NEXT: <array> 1372*67e74705SXin Li// CHECK-NEXT: <dict> 1373*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>153</integer> 1374*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>21</integer> 1375*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1376*67e74705SXin Li// CHECK-NEXT: </dict> 1377*67e74705SXin Li// CHECK-NEXT: <dict> 1378*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>153</integer> 1379*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>58</integer> 1380*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1381*67e74705SXin Li// CHECK-NEXT: </dict> 1382*67e74705SXin Li// CHECK-NEXT: </array> 1383*67e74705SXin Li// CHECK-NEXT: </array> 1384*67e74705SXin Li// CHECK-NEXT: <key>depth</key><integer>0</integer> 1385*67e74705SXin Li// CHECK-NEXT: <key>extended_message</key> 1386*67e74705SXin Li// CHECK-NEXT: <string>Value stored to 'cf4' during its initialization is never read</string> 1387*67e74705SXin Li// CHECK-NEXT: <key>message</key> 1388*67e74705SXin Li// CHECK-NEXT: <string>Value stored to 'cf4' during its initialization is never read</string> 1389*67e74705SXin Li// CHECK-NEXT: </dict> 1390*67e74705SXin Li// CHECK-NEXT: </array> 1391*67e74705SXin Li// CHECK-NEXT: <key>description</key><string>Value stored to 'cf4' during its initialization is never read</string> 1392*67e74705SXin Li// CHECK-NEXT: <key>category</key><string>Dead store</string> 1393*67e74705SXin Li// CHECK-NEXT: <key>type</key><string>Dead initialization</string> 1394*67e74705SXin Li// CHECK-NEXT: <key>check_name</key><string>deadcode.DeadStores</string> 1395*67e74705SXin Li// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 1396*67e74705SXin Li// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>a43ae78dcef14395931eeb452f81819f</string> 1397*67e74705SXin Li// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 1398*67e74705SXin Li// CHECK-NEXT: <key>issue_context</key><string>to_cf</string> 1399*67e74705SXin Li// CHECK-NEXT: <key>issue_hash_function_offset</key><string>4</string> 1400*67e74705SXin Li// CHECK-NEXT: <key>location</key> 1401*67e74705SXin Li// CHECK-NEXT: <dict> 1402*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>153</integer> 1403*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>15</integer> 1404*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1405*67e74705SXin Li// CHECK-NEXT: </dict> 1406*67e74705SXin Li// CHECK-NEXT: </dict> 1407*67e74705SXin Li// CHECK-NEXT: <dict> 1408*67e74705SXin Li// CHECK-NEXT: <key>path</key> 1409*67e74705SXin Li// CHECK-NEXT: <array> 1410*67e74705SXin Li// CHECK-NEXT: <dict> 1411*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>control</string> 1412*67e74705SXin Li// CHECK-NEXT: <key>edges</key> 1413*67e74705SXin Li// CHECK-NEXT: <array> 1414*67e74705SXin Li// CHECK-NEXT: <dict> 1415*67e74705SXin Li// CHECK-NEXT: <key>start</key> 1416*67e74705SXin Li// CHECK-NEXT: <array> 1417*67e74705SXin Li// CHECK-NEXT: <dict> 1418*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>164</integer> 1419*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>3</integer> 1420*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1421*67e74705SXin Li// CHECK-NEXT: </dict> 1422*67e74705SXin Li// CHECK-NEXT: <dict> 1423*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>164</integer> 1424*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>16</integer> 1425*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1426*67e74705SXin Li// CHECK-NEXT: </dict> 1427*67e74705SXin Li// CHECK-NEXT: </array> 1428*67e74705SXin Li// CHECK-NEXT: <key>end</key> 1429*67e74705SXin Li// CHECK-NEXT: <array> 1430*67e74705SXin Li// CHECK-NEXT: <dict> 1431*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>165</integer> 1432*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>3</integer> 1433*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1434*67e74705SXin Li// CHECK-NEXT: </dict> 1435*67e74705SXin Li// CHECK-NEXT: <dict> 1436*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>165</integer> 1437*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>11</integer> 1438*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1439*67e74705SXin Li// CHECK-NEXT: </dict> 1440*67e74705SXin Li// CHECK-NEXT: </array> 1441*67e74705SXin Li// CHECK-NEXT: </dict> 1442*67e74705SXin Li// CHECK-NEXT: </array> 1443*67e74705SXin Li// CHECK-NEXT: </dict> 1444*67e74705SXin Li// CHECK-NEXT: <dict> 1445*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>event</string> 1446*67e74705SXin Li// CHECK-NEXT: <key>location</key> 1447*67e74705SXin Li// CHECK-NEXT: <dict> 1448*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>165</integer> 1449*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>20</integer> 1450*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1451*67e74705SXin Li// CHECK-NEXT: </dict> 1452*67e74705SXin Li// CHECK-NEXT: <key>ranges</key> 1453*67e74705SXin Li// CHECK-NEXT: <array> 1454*67e74705SXin Li// CHECK-NEXT: <array> 1455*67e74705SXin Li// CHECK-NEXT: <dict> 1456*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>165</integer> 1457*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>20</integer> 1458*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1459*67e74705SXin Li// CHECK-NEXT: </dict> 1460*67e74705SXin Li// CHECK-NEXT: <dict> 1461*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>165</integer> 1462*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>37</integer> 1463*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1464*67e74705SXin Li// CHECK-NEXT: </dict> 1465*67e74705SXin Li// CHECK-NEXT: </array> 1466*67e74705SXin Li// CHECK-NEXT: </array> 1467*67e74705SXin Li// CHECK-NEXT: <key>depth</key><integer>0</integer> 1468*67e74705SXin Li// CHECK-NEXT: <key>extended_message</key> 1469*67e74705SXin Li// CHECK-NEXT: <string>Call to function 'CFDateCreate' returns a Core Foundation object with a +1 retain count</string> 1470*67e74705SXin Li// CHECK-NEXT: <key>message</key> 1471*67e74705SXin Li// CHECK-NEXT: <string>Call to function 'CFDateCreate' returns a Core Foundation object with a +1 retain count</string> 1472*67e74705SXin Li// CHECK-NEXT: </dict> 1473*67e74705SXin Li// CHECK-NEXT: <dict> 1474*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>control</string> 1475*67e74705SXin Li// CHECK-NEXT: <key>edges</key> 1476*67e74705SXin Li// CHECK-NEXT: <array> 1477*67e74705SXin Li// CHECK-NEXT: <dict> 1478*67e74705SXin Li// CHECK-NEXT: <key>start</key> 1479*67e74705SXin Li// CHECK-NEXT: <array> 1480*67e74705SXin Li// CHECK-NEXT: <dict> 1481*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>165</integer> 1482*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>3</integer> 1483*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1484*67e74705SXin Li// CHECK-NEXT: </dict> 1485*67e74705SXin Li// CHECK-NEXT: <dict> 1486*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>165</integer> 1487*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>11</integer> 1488*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1489*67e74705SXin Li// CHECK-NEXT: </dict> 1490*67e74705SXin Li// CHECK-NEXT: </array> 1491*67e74705SXin Li// CHECK-NEXT: <key>end</key> 1492*67e74705SXin Li// CHECK-NEXT: <array> 1493*67e74705SXin Li// CHECK-NEXT: <dict> 1494*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>166</integer> 1495*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>3</integer> 1496*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1497*67e74705SXin Li// CHECK-NEXT: </dict> 1498*67e74705SXin Li// CHECK-NEXT: <dict> 1499*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>166</integer> 1500*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>4</integer> 1501*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1502*67e74705SXin Li// CHECK-NEXT: </dict> 1503*67e74705SXin Li// CHECK-NEXT: </array> 1504*67e74705SXin Li// CHECK-NEXT: </dict> 1505*67e74705SXin Li// CHECK-NEXT: </array> 1506*67e74705SXin Li// CHECK-NEXT: </dict> 1507*67e74705SXin Li// CHECK-NEXT: <dict> 1508*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>event</string> 1509*67e74705SXin Li// CHECK-NEXT: <key>location</key> 1510*67e74705SXin Li// CHECK-NEXT: <dict> 1511*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>166</integer> 1512*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>3</integer> 1513*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1514*67e74705SXin Li// CHECK-NEXT: </dict> 1515*67e74705SXin Li// CHECK-NEXT: <key>ranges</key> 1516*67e74705SXin Li// CHECK-NEXT: <array> 1517*67e74705SXin Li// CHECK-NEXT: <array> 1518*67e74705SXin Li// CHECK-NEXT: <dict> 1519*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>166</integer> 1520*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>3</integer> 1521*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1522*67e74705SXin Li// CHECK-NEXT: </dict> 1523*67e74705SXin Li// CHECK-NEXT: <dict> 1524*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>166</integer> 1525*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>6</integer> 1526*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1527*67e74705SXin Li// CHECK-NEXT: </dict> 1528*67e74705SXin Li// CHECK-NEXT: </array> 1529*67e74705SXin Li// CHECK-NEXT: </array> 1530*67e74705SXin Li// CHECK-NEXT: <key>depth</key><integer>0</integer> 1531*67e74705SXin Li// CHECK-NEXT: <key>extended_message</key> 1532*67e74705SXin Li// CHECK-NEXT: <string>Object leaked: object allocated and stored into 'date' is not referenced later in this execution path and has a retain count of +1</string> 1533*67e74705SXin Li// CHECK-NEXT: <key>message</key> 1534*67e74705SXin Li// CHECK-NEXT: <string>Object leaked: object allocated and stored into 'date' is not referenced later in this execution path and has a retain count of +1</string> 1535*67e74705SXin Li// CHECK-NEXT: </dict> 1536*67e74705SXin Li// CHECK-NEXT: </array> 1537*67e74705SXin Li// CHECK-NEXT: <key>description</key><string>Potential leak of an object stored into 'date'</string> 1538*67e74705SXin Li// CHECK-NEXT: <key>category</key><string>Memory (Core Foundation/Objective-C)</string> 1539*67e74705SXin Li// CHECK-NEXT: <key>type</key><string>Leak</string> 1540*67e74705SXin Li// CHECK-NEXT: <key>check_name</key><string>osx.cocoa.RetainCount</string> 1541*67e74705SXin Li// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 1542*67e74705SXin Li// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>798e65f80df0526369f9bb240e3d91fd</string> 1543*67e74705SXin Li// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 1544*67e74705SXin Li// CHECK-NEXT: <key>issue_context</key><string>test_objc_unretainedObject</string> 1545*67e74705SXin Li// CHECK-NEXT: <key>issue_hash_function_offset</key><string>2</string> 1546*67e74705SXin Li// CHECK-NEXT: <key>location</key> 1547*67e74705SXin Li// CHECK-NEXT: <dict> 1548*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>166</integer> 1549*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>3</integer> 1550*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1551*67e74705SXin Li// CHECK-NEXT: </dict> 1552*67e74705SXin Li// CHECK-NEXT: </dict> 1553*67e74705SXin Li// CHECK-NEXT: <dict> 1554*67e74705SXin Li// CHECK-NEXT: <key>path</key> 1555*67e74705SXin Li// CHECK-NEXT: <array> 1556*67e74705SXin Li// CHECK-NEXT: <dict> 1557*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>control</string> 1558*67e74705SXin Li// CHECK-NEXT: <key>edges</key> 1559*67e74705SXin Li// CHECK-NEXT: <array> 1560*67e74705SXin Li// CHECK-NEXT: <dict> 1561*67e74705SXin Li// CHECK-NEXT: <key>start</key> 1562*67e74705SXin Li// CHECK-NEXT: <array> 1563*67e74705SXin Li// CHECK-NEXT: <dict> 1564*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>178</integer> 1565*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>9</integer> 1566*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1567*67e74705SXin Li// CHECK-NEXT: </dict> 1568*67e74705SXin Li// CHECK-NEXT: <dict> 1569*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>178</integer> 1570*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>16</integer> 1571*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1572*67e74705SXin Li// CHECK-NEXT: </dict> 1573*67e74705SXin Li// CHECK-NEXT: </array> 1574*67e74705SXin Li// CHECK-NEXT: <key>end</key> 1575*67e74705SXin Li// CHECK-NEXT: <array> 1576*67e74705SXin Li// CHECK-NEXT: <dict> 1577*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>181</integer> 1578*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>9</integer> 1579*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1580*67e74705SXin Li// CHECK-NEXT: </dict> 1581*67e74705SXin Li// CHECK-NEXT: <dict> 1582*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>181</integer> 1583*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>9</integer> 1584*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1585*67e74705SXin Li// CHECK-NEXT: </dict> 1586*67e74705SXin Li// CHECK-NEXT: </array> 1587*67e74705SXin Li// CHECK-NEXT: </dict> 1588*67e74705SXin Li// CHECK-NEXT: </array> 1589*67e74705SXin Li// CHECK-NEXT: </dict> 1590*67e74705SXin Li// CHECK-NEXT: <dict> 1591*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>control</string> 1592*67e74705SXin Li// CHECK-NEXT: <key>edges</key> 1593*67e74705SXin Li// CHECK-NEXT: <array> 1594*67e74705SXin Li// CHECK-NEXT: <dict> 1595*67e74705SXin Li// CHECK-NEXT: <key>start</key> 1596*67e74705SXin Li// CHECK-NEXT: <array> 1597*67e74705SXin Li// CHECK-NEXT: <dict> 1598*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>181</integer> 1599*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>9</integer> 1600*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1601*67e74705SXin Li// CHECK-NEXT: </dict> 1602*67e74705SXin Li// CHECK-NEXT: <dict> 1603*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>181</integer> 1604*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>9</integer> 1605*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1606*67e74705SXin Li// CHECK-NEXT: </dict> 1607*67e74705SXin Li// CHECK-NEXT: </array> 1608*67e74705SXin Li// CHECK-NEXT: <key>end</key> 1609*67e74705SXin Li// CHECK-NEXT: <array> 1610*67e74705SXin Li// CHECK-NEXT: <dict> 1611*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>185</integer> 1612*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>9</integer> 1613*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1614*67e74705SXin Li// CHECK-NEXT: </dict> 1615*67e74705SXin Li// CHECK-NEXT: <dict> 1616*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>185</integer> 1617*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>16</integer> 1618*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1619*67e74705SXin Li// CHECK-NEXT: </dict> 1620*67e74705SXin Li// CHECK-NEXT: </array> 1621*67e74705SXin Li// CHECK-NEXT: </dict> 1622*67e74705SXin Li// CHECK-NEXT: </array> 1623*67e74705SXin Li// CHECK-NEXT: </dict> 1624*67e74705SXin Li// CHECK-NEXT: <dict> 1625*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>control</string> 1626*67e74705SXin Li// CHECK-NEXT: <key>edges</key> 1627*67e74705SXin Li// CHECK-NEXT: <array> 1628*67e74705SXin Li// CHECK-NEXT: <dict> 1629*67e74705SXin Li// CHECK-NEXT: <key>start</key> 1630*67e74705SXin Li// CHECK-NEXT: <array> 1631*67e74705SXin Li// CHECK-NEXT: <dict> 1632*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>185</integer> 1633*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>9</integer> 1634*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1635*67e74705SXin Li// CHECK-NEXT: </dict> 1636*67e74705SXin Li// CHECK-NEXT: <dict> 1637*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>185</integer> 1638*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>16</integer> 1639*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1640*67e74705SXin Li// CHECK-NEXT: </dict> 1641*67e74705SXin Li// CHECK-NEXT: </array> 1642*67e74705SXin Li// CHECK-NEXT: <key>end</key> 1643*67e74705SXin Li// CHECK-NEXT: <array> 1644*67e74705SXin Li// CHECK-NEXT: <dict> 1645*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>189</integer> 1646*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>9</integer> 1647*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1648*67e74705SXin Li// CHECK-NEXT: </dict> 1649*67e74705SXin Li// CHECK-NEXT: <dict> 1650*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>189</integer> 1651*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>9</integer> 1652*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1653*67e74705SXin Li// CHECK-NEXT: </dict> 1654*67e74705SXin Li// CHECK-NEXT: </array> 1655*67e74705SXin Li// CHECK-NEXT: </dict> 1656*67e74705SXin Li// CHECK-NEXT: </array> 1657*67e74705SXin Li// CHECK-NEXT: </dict> 1658*67e74705SXin Li// CHECK-NEXT: <dict> 1659*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>control</string> 1660*67e74705SXin Li// CHECK-NEXT: <key>edges</key> 1661*67e74705SXin Li// CHECK-NEXT: <array> 1662*67e74705SXin Li// CHECK-NEXT: <dict> 1663*67e74705SXin Li// CHECK-NEXT: <key>start</key> 1664*67e74705SXin Li// CHECK-NEXT: <array> 1665*67e74705SXin Li// CHECK-NEXT: <dict> 1666*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>189</integer> 1667*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>9</integer> 1668*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1669*67e74705SXin Li// CHECK-NEXT: </dict> 1670*67e74705SXin Li// CHECK-NEXT: <dict> 1671*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>189</integer> 1672*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>9</integer> 1673*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1674*67e74705SXin Li// CHECK-NEXT: </dict> 1675*67e74705SXin Li// CHECK-NEXT: </array> 1676*67e74705SXin Li// CHECK-NEXT: <key>end</key> 1677*67e74705SXin Li// CHECK-NEXT: <array> 1678*67e74705SXin Li// CHECK-NEXT: <dict> 1679*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>193</integer> 1680*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>9</integer> 1681*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1682*67e74705SXin Li// CHECK-NEXT: </dict> 1683*67e74705SXin Li// CHECK-NEXT: <dict> 1684*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>193</integer> 1685*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>16</integer> 1686*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1687*67e74705SXin Li// CHECK-NEXT: </dict> 1688*67e74705SXin Li// CHECK-NEXT: </array> 1689*67e74705SXin Li// CHECK-NEXT: </dict> 1690*67e74705SXin Li// CHECK-NEXT: </array> 1691*67e74705SXin Li// CHECK-NEXT: </dict> 1692*67e74705SXin Li// CHECK-NEXT: <dict> 1693*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>control</string> 1694*67e74705SXin Li// CHECK-NEXT: <key>edges</key> 1695*67e74705SXin Li// CHECK-NEXT: <array> 1696*67e74705SXin Li// CHECK-NEXT: <dict> 1697*67e74705SXin Li// CHECK-NEXT: <key>start</key> 1698*67e74705SXin Li// CHECK-NEXT: <array> 1699*67e74705SXin Li// CHECK-NEXT: <dict> 1700*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>193</integer> 1701*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>9</integer> 1702*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1703*67e74705SXin Li// CHECK-NEXT: </dict> 1704*67e74705SXin Li// CHECK-NEXT: <dict> 1705*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>193</integer> 1706*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>16</integer> 1707*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1708*67e74705SXin Li// CHECK-NEXT: </dict> 1709*67e74705SXin Li// CHECK-NEXT: </array> 1710*67e74705SXin Li// CHECK-NEXT: <key>end</key> 1711*67e74705SXin Li// CHECK-NEXT: <array> 1712*67e74705SXin Li// CHECK-NEXT: <dict> 1713*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>196</integer> 1714*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>9</integer> 1715*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1716*67e74705SXin Li// CHECK-NEXT: </dict> 1717*67e74705SXin Li// CHECK-NEXT: <dict> 1718*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>196</integer> 1719*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>9</integer> 1720*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1721*67e74705SXin Li// CHECK-NEXT: </dict> 1722*67e74705SXin Li// CHECK-NEXT: </array> 1723*67e74705SXin Li// CHECK-NEXT: </dict> 1724*67e74705SXin Li// CHECK-NEXT: </array> 1725*67e74705SXin Li// CHECK-NEXT: </dict> 1726*67e74705SXin Li// CHECK-NEXT: <dict> 1727*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>control</string> 1728*67e74705SXin Li// CHECK-NEXT: <key>edges</key> 1729*67e74705SXin Li// CHECK-NEXT: <array> 1730*67e74705SXin Li// CHECK-NEXT: <dict> 1731*67e74705SXin Li// CHECK-NEXT: <key>start</key> 1732*67e74705SXin Li// CHECK-NEXT: <array> 1733*67e74705SXin Li// CHECK-NEXT: <dict> 1734*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>196</integer> 1735*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>9</integer> 1736*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1737*67e74705SXin Li// CHECK-NEXT: </dict> 1738*67e74705SXin Li// CHECK-NEXT: <dict> 1739*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>196</integer> 1740*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>9</integer> 1741*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1742*67e74705SXin Li// CHECK-NEXT: </dict> 1743*67e74705SXin Li// CHECK-NEXT: </array> 1744*67e74705SXin Li// CHECK-NEXT: <key>end</key> 1745*67e74705SXin Li// CHECK-NEXT: <array> 1746*67e74705SXin Li// CHECK-NEXT: <dict> 1747*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>200</integer> 1748*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>7</integer> 1749*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1750*67e74705SXin Li// CHECK-NEXT: </dict> 1751*67e74705SXin Li// CHECK-NEXT: <dict> 1752*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>200</integer> 1753*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>20</integer> 1754*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1755*67e74705SXin Li// CHECK-NEXT: </dict> 1756*67e74705SXin Li// CHECK-NEXT: </array> 1757*67e74705SXin Li// CHECK-NEXT: </dict> 1758*67e74705SXin Li// CHECK-NEXT: </array> 1759*67e74705SXin Li// CHECK-NEXT: </dict> 1760*67e74705SXin Li// CHECK-NEXT: <dict> 1761*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>event</string> 1762*67e74705SXin Li// CHECK-NEXT: <key>location</key> 1763*67e74705SXin Li// CHECK-NEXT: <dict> 1764*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>200</integer> 1765*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>7</integer> 1766*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1767*67e74705SXin Li// CHECK-NEXT: </dict> 1768*67e74705SXin Li// CHECK-NEXT: <key>ranges</key> 1769*67e74705SXin Li// CHECK-NEXT: <array> 1770*67e74705SXin Li// CHECK-NEXT: <array> 1771*67e74705SXin Li// CHECK-NEXT: <dict> 1772*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>200</integer> 1773*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>7</integer> 1774*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1775*67e74705SXin Li// CHECK-NEXT: </dict> 1776*67e74705SXin Li// CHECK-NEXT: <dict> 1777*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>200</integer> 1778*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>22</integer> 1779*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1780*67e74705SXin Li// CHECK-NEXT: </dict> 1781*67e74705SXin Li// CHECK-NEXT: </array> 1782*67e74705SXin Li// CHECK-NEXT: </array> 1783*67e74705SXin Li// CHECK-NEXT: <key>depth</key><integer>0</integer> 1784*67e74705SXin Li// CHECK-NEXT: <key>extended_message</key> 1785*67e74705SXin Li// CHECK-NEXT: <string>Call to function 'CFCreateString' returns a Core Foundation object with a +1 retain count</string> 1786*67e74705SXin Li// CHECK-NEXT: <key>message</key> 1787*67e74705SXin Li// CHECK-NEXT: <string>Call to function 'CFCreateString' returns a Core Foundation object with a +1 retain count</string> 1788*67e74705SXin Li// CHECK-NEXT: </dict> 1789*67e74705SXin Li// CHECK-NEXT: <dict> 1790*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>control</string> 1791*67e74705SXin Li// CHECK-NEXT: <key>edges</key> 1792*67e74705SXin Li// CHECK-NEXT: <array> 1793*67e74705SXin Li// CHECK-NEXT: <dict> 1794*67e74705SXin Li// CHECK-NEXT: <key>start</key> 1795*67e74705SXin Li// CHECK-NEXT: <array> 1796*67e74705SXin Li// CHECK-NEXT: <dict> 1797*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>200</integer> 1798*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>7</integer> 1799*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1800*67e74705SXin Li// CHECK-NEXT: </dict> 1801*67e74705SXin Li// CHECK-NEXT: <dict> 1802*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>200</integer> 1803*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>20</integer> 1804*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1805*67e74705SXin Li// CHECK-NEXT: </dict> 1806*67e74705SXin Li// CHECK-NEXT: </array> 1807*67e74705SXin Li// CHECK-NEXT: <key>end</key> 1808*67e74705SXin Li// CHECK-NEXT: <array> 1809*67e74705SXin Li// CHECK-NEXT: <dict> 1810*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>202</integer> 1811*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>1</integer> 1812*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1813*67e74705SXin Li// CHECK-NEXT: </dict> 1814*67e74705SXin Li// CHECK-NEXT: <dict> 1815*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>202</integer> 1816*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>1</integer> 1817*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1818*67e74705SXin Li// CHECK-NEXT: </dict> 1819*67e74705SXin Li// CHECK-NEXT: </array> 1820*67e74705SXin Li// CHECK-NEXT: </dict> 1821*67e74705SXin Li// CHECK-NEXT: </array> 1822*67e74705SXin Li// CHECK-NEXT: </dict> 1823*67e74705SXin Li// CHECK-NEXT: <dict> 1824*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>event</string> 1825*67e74705SXin Li// CHECK-NEXT: <key>location</key> 1826*67e74705SXin Li// CHECK-NEXT: <dict> 1827*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>202</integer> 1828*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>1</integer> 1829*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1830*67e74705SXin Li// CHECK-NEXT: </dict> 1831*67e74705SXin Li// CHECK-NEXT: <key>depth</key><integer>0</integer> 1832*67e74705SXin Li// CHECK-NEXT: <key>extended_message</key> 1833*67e74705SXin Li// CHECK-NEXT: <string>Object leaked: allocated object is not referenced later in this execution path and has a retain count of +1</string> 1834*67e74705SXin Li// CHECK-NEXT: <key>message</key> 1835*67e74705SXin Li// CHECK-NEXT: <string>Object leaked: allocated object is not referenced later in this execution path and has a retain count of +1</string> 1836*67e74705SXin Li// CHECK-NEXT: </dict> 1837*67e74705SXin Li// CHECK-NEXT: </array> 1838*67e74705SXin Li// CHECK-NEXT: <key>description</key><string>Potential leak of an object</string> 1839*67e74705SXin Li// CHECK-NEXT: <key>category</key><string>Memory (Core Foundation/Objective-C)</string> 1840*67e74705SXin Li// CHECK-NEXT: <key>type</key><string>Leak</string> 1841*67e74705SXin Li// CHECK-NEXT: <key>check_name</key><string>osx.cocoa.RetainCount</string> 1842*67e74705SXin Li// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 1843*67e74705SXin Li// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>e1fbcc142b678b3c2c43737ee35b64d9</string> 1844*67e74705SXin Li// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 1845*67e74705SXin Li// CHECK-NEXT: <key>issue_context</key><string>test_objc_arrays</string> 1846*67e74705SXin Li// CHECK-NEXT: <key>issue_hash_function_offset</key><string>24</string> 1847*67e74705SXin Li// CHECK-NEXT: <key>location</key> 1848*67e74705SXin Li// CHECK-NEXT: <dict> 1849*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>202</integer> 1850*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>1</integer> 1851*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1852*67e74705SXin Li// CHECK-NEXT: </dict> 1853*67e74705SXin Li// CHECK-NEXT: </dict> 1854*67e74705SXin Li// CHECK-NEXT: <dict> 1855*67e74705SXin Li// CHECK-NEXT: <key>path</key> 1856*67e74705SXin Li// CHECK-NEXT: <array> 1857*67e74705SXin Li// CHECK-NEXT: <dict> 1858*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>event</string> 1859*67e74705SXin Li// CHECK-NEXT: <key>location</key> 1860*67e74705SXin Li// CHECK-NEXT: <dict> 1861*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>214</integer> 1862*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>17</integer> 1863*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1864*67e74705SXin Li// CHECK-NEXT: </dict> 1865*67e74705SXin Li// CHECK-NEXT: <key>ranges</key> 1866*67e74705SXin Li// CHECK-NEXT: <array> 1867*67e74705SXin Li// CHECK-NEXT: <array> 1868*67e74705SXin Li// CHECK-NEXT: <dict> 1869*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>214</integer> 1870*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>17</integer> 1871*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1872*67e74705SXin Li// CHECK-NEXT: </dict> 1873*67e74705SXin Li// CHECK-NEXT: <dict> 1874*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>214</integer> 1875*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>39</integer> 1876*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1877*67e74705SXin Li// CHECK-NEXT: </dict> 1878*67e74705SXin Li// CHECK-NEXT: </array> 1879*67e74705SXin Li// CHECK-NEXT: </array> 1880*67e74705SXin Li// CHECK-NEXT: <key>depth</key><integer>0</integer> 1881*67e74705SXin Li// CHECK-NEXT: <key>extended_message</key> 1882*67e74705SXin Li// CHECK-NEXT: <string>Method returns an Objective-C object with a +0 retain count</string> 1883*67e74705SXin Li// CHECK-NEXT: <key>message</key> 1884*67e74705SXin Li// CHECK-NEXT: <string>Method returns an Objective-C object with a +0 retain count</string> 1885*67e74705SXin Li// CHECK-NEXT: </dict> 1886*67e74705SXin Li// CHECK-NEXT: <dict> 1887*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>control</string> 1888*67e74705SXin Li// CHECK-NEXT: <key>edges</key> 1889*67e74705SXin Li// CHECK-NEXT: <array> 1890*67e74705SXin Li// CHECK-NEXT: <dict> 1891*67e74705SXin Li// CHECK-NEXT: <key>start</key> 1892*67e74705SXin Li// CHECK-NEXT: <array> 1893*67e74705SXin Li// CHECK-NEXT: <dict> 1894*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>214</integer> 1895*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>3</integer> 1896*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1897*67e74705SXin Li// CHECK-NEXT: </dict> 1898*67e74705SXin Li// CHECK-NEXT: <dict> 1899*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>214</integer> 1900*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>10</integer> 1901*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1902*67e74705SXin Li// CHECK-NEXT: </dict> 1903*67e74705SXin Li// CHECK-NEXT: </array> 1904*67e74705SXin Li// CHECK-NEXT: <key>end</key> 1905*67e74705SXin Li// CHECK-NEXT: <array> 1906*67e74705SXin Li// CHECK-NEXT: <dict> 1907*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>215</integer> 1908*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>3</integer> 1909*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1910*67e74705SXin Li// CHECK-NEXT: </dict> 1911*67e74705SXin Li// CHECK-NEXT: <dict> 1912*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>215</integer> 1913*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>18</integer> 1914*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1915*67e74705SXin Li// CHECK-NEXT: </dict> 1916*67e74705SXin Li// CHECK-NEXT: </array> 1917*67e74705SXin Li// CHECK-NEXT: </dict> 1918*67e74705SXin Li// CHECK-NEXT: </array> 1919*67e74705SXin Li// CHECK-NEXT: </dict> 1920*67e74705SXin Li// CHECK-NEXT: <dict> 1921*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>event</string> 1922*67e74705SXin Li// CHECK-NEXT: <key>location</key> 1923*67e74705SXin Li// CHECK-NEXT: <dict> 1924*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>215</integer> 1925*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>3</integer> 1926*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1927*67e74705SXin Li// CHECK-NEXT: </dict> 1928*67e74705SXin Li// CHECK-NEXT: <key>ranges</key> 1929*67e74705SXin Li// CHECK-NEXT: <array> 1930*67e74705SXin Li// CHECK-NEXT: <array> 1931*67e74705SXin Li// CHECK-NEXT: <dict> 1932*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>215</integer> 1933*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>3</integer> 1934*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1935*67e74705SXin Li// CHECK-NEXT: </dict> 1936*67e74705SXin Li// CHECK-NEXT: <dict> 1937*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>215</integer> 1938*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>21</integer> 1939*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1940*67e74705SXin Li// CHECK-NEXT: </dict> 1941*67e74705SXin Li// CHECK-NEXT: </array> 1942*67e74705SXin Li// CHECK-NEXT: <array> 1943*67e74705SXin Li// CHECK-NEXT: <dict> 1944*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>215</integer> 1945*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>20</integer> 1946*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1947*67e74705SXin Li// CHECK-NEXT: </dict> 1948*67e74705SXin Li// CHECK-NEXT: <dict> 1949*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>215</integer> 1950*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>20</integer> 1951*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1952*67e74705SXin Li// CHECK-NEXT: </dict> 1953*67e74705SXin Li// CHECK-NEXT: </array> 1954*67e74705SXin Li// CHECK-NEXT: </array> 1955*67e74705SXin Li// CHECK-NEXT: <key>depth</key><integer>0</integer> 1956*67e74705SXin Li// CHECK-NEXT: <key>extended_message</key> 1957*67e74705SXin Li// CHECK-NEXT: <string>Reference count incremented. The object now has a +1 retain count</string> 1958*67e74705SXin Li// CHECK-NEXT: <key>message</key> 1959*67e74705SXin Li// CHECK-NEXT: <string>Reference count incremented. The object now has a +1 retain count</string> 1960*67e74705SXin Li// CHECK-NEXT: </dict> 1961*67e74705SXin Li// CHECK-NEXT: <dict> 1962*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>control</string> 1963*67e74705SXin Li// CHECK-NEXT: <key>edges</key> 1964*67e74705SXin Li// CHECK-NEXT: <array> 1965*67e74705SXin Li// CHECK-NEXT: <dict> 1966*67e74705SXin Li// CHECK-NEXT: <key>start</key> 1967*67e74705SXin Li// CHECK-NEXT: <array> 1968*67e74705SXin Li// CHECK-NEXT: <dict> 1969*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>215</integer> 1970*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>3</integer> 1971*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1972*67e74705SXin Li// CHECK-NEXT: </dict> 1973*67e74705SXin Li// CHECK-NEXT: <dict> 1974*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>215</integer> 1975*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>18</integer> 1976*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1977*67e74705SXin Li// CHECK-NEXT: </dict> 1978*67e74705SXin Li// CHECK-NEXT: </array> 1979*67e74705SXin Li// CHECK-NEXT: <key>end</key> 1980*67e74705SXin Li// CHECK-NEXT: <array> 1981*67e74705SXin Li// CHECK-NEXT: <dict> 1982*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>216</integer> 1983*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>1</integer> 1984*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1985*67e74705SXin Li// CHECK-NEXT: </dict> 1986*67e74705SXin Li// CHECK-NEXT: <dict> 1987*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>216</integer> 1988*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>1</integer> 1989*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 1990*67e74705SXin Li// CHECK-NEXT: </dict> 1991*67e74705SXin Li// CHECK-NEXT: </array> 1992*67e74705SXin Li// CHECK-NEXT: </dict> 1993*67e74705SXin Li// CHECK-NEXT: </array> 1994*67e74705SXin Li// CHECK-NEXT: </dict> 1995*67e74705SXin Li// CHECK-NEXT: <dict> 1996*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>event</string> 1997*67e74705SXin Li// CHECK-NEXT: <key>location</key> 1998*67e74705SXin Li// CHECK-NEXT: <dict> 1999*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>216</integer> 2000*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>1</integer> 2001*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 2002*67e74705SXin Li// CHECK-NEXT: </dict> 2003*67e74705SXin Li// CHECK-NEXT: <key>depth</key><integer>0</integer> 2004*67e74705SXin Li// CHECK-NEXT: <key>extended_message</key> 2005*67e74705SXin Li// CHECK-NEXT: <string>Object leaked: object allocated and stored into 'o' is not referenced later in this execution path and has a retain count of +1</string> 2006*67e74705SXin Li// CHECK-NEXT: <key>message</key> 2007*67e74705SXin Li// CHECK-NEXT: <string>Object leaked: object allocated and stored into 'o' is not referenced later in this execution path and has a retain count of +1</string> 2008*67e74705SXin Li// CHECK-NEXT: </dict> 2009*67e74705SXin Li// CHECK-NEXT: </array> 2010*67e74705SXin Li// CHECK-NEXT: <key>description</key><string>Potential leak of an object stored into 'o'</string> 2011*67e74705SXin Li// CHECK-NEXT: <key>category</key><string>Memory (Core Foundation/Objective-C)</string> 2012*67e74705SXin Li// CHECK-NEXT: <key>type</key><string>Leak</string> 2013*67e74705SXin Li// CHECK-NEXT: <key>check_name</key><string>osx.cocoa.RetainCount</string> 2014*67e74705SXin Li// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 2015*67e74705SXin Li// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>e300a279615a384d2b310329651d3978</string> 2016*67e74705SXin Li// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 2017*67e74705SXin Li// CHECK-NEXT: <key>issue_context</key><string>rdar11059275_positive</string> 2018*67e74705SXin Li// CHECK-NEXT: <key>issue_hash_function_offset</key><string>1</string> 2019*67e74705SXin Li// CHECK-NEXT: <key>location</key> 2020*67e74705SXin Li// CHECK-NEXT: <dict> 2021*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>216</integer> 2022*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>1</integer> 2023*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 2024*67e74705SXin Li// CHECK-NEXT: </dict> 2025*67e74705SXin Li// CHECK-NEXT: </dict> 2026*67e74705SXin Li// CHECK-NEXT: <dict> 2027*67e74705SXin Li// CHECK-NEXT: <key>path</key> 2028*67e74705SXin Li// CHECK-NEXT: <array> 2029*67e74705SXin Li// CHECK-NEXT: <dict> 2030*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>control</string> 2031*67e74705SXin Li// CHECK-NEXT: <key>edges</key> 2032*67e74705SXin Li// CHECK-NEXT: <array> 2033*67e74705SXin Li// CHECK-NEXT: <dict> 2034*67e74705SXin Li// CHECK-NEXT: <key>start</key> 2035*67e74705SXin Li// CHECK-NEXT: <array> 2036*67e74705SXin Li// CHECK-NEXT: <dict> 2037*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>229</integer> 2038*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>3</integer> 2039*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 2040*67e74705SXin Li// CHECK-NEXT: </dict> 2041*67e74705SXin Li// CHECK-NEXT: <dict> 2042*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>229</integer> 2043*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>4</integer> 2044*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 2045*67e74705SXin Li// CHECK-NEXT: </dict> 2046*67e74705SXin Li// CHECK-NEXT: </array> 2047*67e74705SXin Li// CHECK-NEXT: <key>end</key> 2048*67e74705SXin Li// CHECK-NEXT: <array> 2049*67e74705SXin Li// CHECK-NEXT: <dict> 2050*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>230</integer> 2051*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>3</integer> 2052*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 2053*67e74705SXin Li// CHECK-NEXT: </dict> 2054*67e74705SXin Li// CHECK-NEXT: <dict> 2055*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>230</integer> 2056*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>3</integer> 2057*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 2058*67e74705SXin Li// CHECK-NEXT: </dict> 2059*67e74705SXin Li// CHECK-NEXT: </array> 2060*67e74705SXin Li// CHECK-NEXT: </dict> 2061*67e74705SXin Li// CHECK-NEXT: </array> 2062*67e74705SXin Li// CHECK-NEXT: </dict> 2063*67e74705SXin Li// CHECK-NEXT: <dict> 2064*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>control</string> 2065*67e74705SXin Li// CHECK-NEXT: <key>edges</key> 2066*67e74705SXin Li// CHECK-NEXT: <array> 2067*67e74705SXin Li// CHECK-NEXT: <dict> 2068*67e74705SXin Li// CHECK-NEXT: <key>start</key> 2069*67e74705SXin Li// CHECK-NEXT: <array> 2070*67e74705SXin Li// CHECK-NEXT: <dict> 2071*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>230</integer> 2072*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>3</integer> 2073*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 2074*67e74705SXin Li// CHECK-NEXT: </dict> 2075*67e74705SXin Li// CHECK-NEXT: <dict> 2076*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>230</integer> 2077*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>3</integer> 2078*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 2079*67e74705SXin Li// CHECK-NEXT: </dict> 2080*67e74705SXin Li// CHECK-NEXT: </array> 2081*67e74705SXin Li// CHECK-NEXT: <key>end</key> 2082*67e74705SXin Li// CHECK-NEXT: <array> 2083*67e74705SXin Li// CHECK-NEXT: <dict> 2084*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>230</integer> 2085*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>22</integer> 2086*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 2087*67e74705SXin Li// CHECK-NEXT: </dict> 2088*67e74705SXin Li// CHECK-NEXT: <dict> 2089*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>230</integer> 2090*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>22</integer> 2091*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 2092*67e74705SXin Li// CHECK-NEXT: </dict> 2093*67e74705SXin Li// CHECK-NEXT: </array> 2094*67e74705SXin Li// CHECK-NEXT: </dict> 2095*67e74705SXin Li// CHECK-NEXT: </array> 2096*67e74705SXin Li// CHECK-NEXT: </dict> 2097*67e74705SXin Li// CHECK-NEXT: <dict> 2098*67e74705SXin Li// CHECK-NEXT: <key>kind</key><string>event</string> 2099*67e74705SXin Li// CHECK-NEXT: <key>location</key> 2100*67e74705SXin Li// CHECK-NEXT: <dict> 2101*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>230</integer> 2102*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>22</integer> 2103*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 2104*67e74705SXin Li// CHECK-NEXT: </dict> 2105*67e74705SXin Li// CHECK-NEXT: <key>ranges</key> 2106*67e74705SXin Li// CHECK-NEXT: <array> 2107*67e74705SXin Li// CHECK-NEXT: <array> 2108*67e74705SXin Li// CHECK-NEXT: <dict> 2109*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>230</integer> 2110*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>3</integer> 2111*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 2112*67e74705SXin Li// CHECK-NEXT: </dict> 2113*67e74705SXin Li// CHECK-NEXT: <dict> 2114*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>230</integer> 2115*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>24</integer> 2116*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 2117*67e74705SXin Li// CHECK-NEXT: </dict> 2118*67e74705SXin Li// CHECK-NEXT: </array> 2119*67e74705SXin Li// CHECK-NEXT: </array> 2120*67e74705SXin Li// CHECK-NEXT: <key>depth</key><integer>0</integer> 2121*67e74705SXin Li// CHECK-NEXT: <key>extended_message</key> 2122*67e74705SXin Li// CHECK-NEXT: <string>Dereference of null pointer</string> 2123*67e74705SXin Li// CHECK-NEXT: <key>message</key> 2124*67e74705SXin Li// CHECK-NEXT: <string>Dereference of null pointer</string> 2125*67e74705SXin Li// CHECK-NEXT: </dict> 2126*67e74705SXin Li// CHECK-NEXT: </array> 2127*67e74705SXin Li// CHECK-NEXT: <key>description</key><string>Dereference of null pointer</string> 2128*67e74705SXin Li// CHECK-NEXT: <key>category</key><string>Logic error</string> 2129*67e74705SXin Li// CHECK-NEXT: <key>type</key><string>Dereference of null pointer</string> 2130*67e74705SXin Li// CHECK-NEXT: <key>check_name</key><string>core.NullDereference</string> 2131*67e74705SXin Li// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 2132*67e74705SXin Li// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>37efdaee587b783c6d49a228ff5ba49f</string> 2133*67e74705SXin Li// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 2134*67e74705SXin Li// CHECK-NEXT: <key>issue_context</key><string>rdar14061675</string> 2135*67e74705SXin Li// CHECK-NEXT: <key>issue_hash_function_offset</key><string>4</string> 2136*67e74705SXin Li// CHECK-NEXT: <key>location</key> 2137*67e74705SXin Li// CHECK-NEXT: <dict> 2138*67e74705SXin Li// CHECK-NEXT: <key>line</key><integer>230</integer> 2139*67e74705SXin Li// CHECK-NEXT: <key>col</key><integer>22</integer> 2140*67e74705SXin Li// CHECK-NEXT: <key>file</key><integer>0</integer> 2141*67e74705SXin Li// CHECK-NEXT: </dict> 2142*67e74705SXin Li// CHECK-NEXT: </dict> 2143*67e74705SXin Li// CHECK-NEXT: </array> 2144