// RUN: %clang_analyze_cc1 -analyzer-checker=core,osx.cocoa.RetainCount -fblocks -verify %s
// RUN: %clang_analyze_cc1 -analyzer-checker=core,osx.cocoa.RetainCount -fblocks -analyzer-output=plist-multi-file -analyzer-config path-diagnostics-alternate=false %s -o %t
// RUN: FileCheck --input-file=%t %s
@class NSString;
typedef long NSInteger;
typedef unsigned char BOOL;
@interface NSObject {}
+(id)alloc;
-(id)init;
-(id)autorelease;
-(id)copy;
-(id)retain;
@end
@interface NSNumber : NSObject
+ (NSNumber *)numberWithInteger:(NSInteger)value __attribute__((availability(ios,introduced=2.0)));
@end
NSInteger *inoutIntegerValueGlobal;
NSInteger *inoutIntegerValueGlobal2;
NSString *traitNameGlobal;
static BOOL cond;
static inline void reallyPerformAction(void (^integerHandler)(NSInteger *inoutIntegerValue, NSString *traitName)) {
  integerHandler(inoutIntegerValueGlobal, traitNameGlobal); // expected-warning {{Potential leak of an object}}
  integerHandler(inoutIntegerValueGlobal2,traitNameGlobal);
}
static inline BOOL performAction(NSNumber *(^action)(NSNumber *traitValue)) {
  __attribute__((__blocks__(byref))) BOOL didFindTrait = 0;
  reallyPerformAction(^(NSInteger *inoutIntegerValue,NSString *traitName) {
    if (cond) {
      NSNumber *traitValue = @(*inoutIntegerValue);
      NSNumber *newTraitValue = action(traitValue);
      if (traitValue != newTraitValue) {
        *inoutIntegerValue = newTraitValue ? *inoutIntegerValue : *inoutIntegerValue;
      }
      didFindTrait = 1;
    }
  });
  return didFindTrait;
}
void runTest() {
  __attribute__((__blocks__(byref))) NSNumber *builtinResult = ((NSNumber *)0);
  BOOL wasBuiltinTrait = performAction(^(NSNumber *traitValue) {
    builtinResult = [traitValue retain];
    return traitValue;
  });
  if (wasBuiltinTrait) {
    [builtinResult autorelease];
    return;
  } else {
    return;
  }
}
// CHECK: diagnostics
// CHECK: 
// CHECK:  
// CHECK:   path
// CHECK:   
// CHECK:    
// CHECK:     kindcontrol
// CHECK:     edges
// CHECK:      
// CHECK:       
// CHECK:        start
// CHECK:         
// CHECK:          
// CHECK:           line48
// CHECK:           col3
// CHECK:           file0
// CHECK:          
// CHECK:          
// CHECK:           line48
// CHECK:           col15
// CHECK:           file0
// CHECK:          
// CHECK:         
// CHECK:        end
// CHECK:         
// CHECK:          
// CHECK:           line49
// CHECK:           col26
// CHECK:           file0
// CHECK:          
// CHECK:          
// CHECK:           line49
// CHECK:           col38
// CHECK:           file0
// CHECK:          
// CHECK:         
// CHECK:       
// CHECK:      
// CHECK:    
// CHECK:    
// CHECK:     kindevent
// CHECK:     location
// CHECK:     
// CHECK:      line49
// CHECK:      col26
// CHECK:      file0
// CHECK:     
// CHECK:     ranges
// CHECK:     
// CHECK:       
// CHECK:        
// CHECK:         line49
// CHECK:         col26
// CHECK:         file0
// CHECK:        
// CHECK:        
// CHECK:         line53
// CHECK:         col4
// CHECK:         file0
// CHECK:        
// CHECK:       
// CHECK:     
// CHECK:     depth0
// CHECK:     extended_message
// CHECK:     Calling 'performAction'
// CHECK:     message
// CHECK:     Calling 'performAction'
// CHECK:    
// CHECK:    
// CHECK:     kindevent
// CHECK:     location
// CHECK:     
// CHECK:      line27
// CHECK:      col1
// CHECK:      file0
// CHECK:     
// CHECK:     depth1
// CHECK:     extended_message
// CHECK:     Entered call from 'runTest'
// CHECK:     message
// CHECK:     Entered call from 'runTest'
// CHECK:    
// CHECK:    
// CHECK:     kindcontrol
// CHECK:     edges
// CHECK:      
// CHECK:       
// CHECK:        start
// CHECK:         
// CHECK:          
// CHECK:           line27
// CHECK:           col1
// CHECK:           file0
// CHECK:          
// CHECK:          
// CHECK:           line27
// CHECK:           col6
// CHECK:           file0
// CHECK:          
// CHECK:         
// CHECK:        end
// CHECK:         
// CHECK:          
// CHECK:           line28
// CHECK:           col3
// CHECK:           file0
// CHECK:          
// CHECK:          
// CHECK:           line28
// CHECK:           col15
// CHECK:           file0
// CHECK:          
// CHECK:         
// CHECK:       
// CHECK:      
// CHECK:    
// CHECK:    
// CHECK:     kindcontrol
// CHECK:     edges
// CHECK:      
// CHECK:       
// CHECK:        start
// CHECK:         
// CHECK:          
// CHECK:           line28
// CHECK:           col3
// CHECK:           file0
// CHECK:          
// CHECK:          
// CHECK:           line28
// CHECK:           col15
// CHECK:           file0
// CHECK:          
// CHECK:         
// CHECK:        end
// CHECK:         
// CHECK:          
// CHECK:           line29
// CHECK:           col3
// CHECK:           file0
// CHECK:          
// CHECK:          
// CHECK:           line29
// CHECK:           col21
// CHECK:           file0
// CHECK:          
// CHECK:         
// CHECK:       
// CHECK:      
// CHECK:    
// CHECK:    
// CHECK:     kindevent
// CHECK:     location
// CHECK:     
// CHECK:      line29
// CHECK:      col3
// CHECK:      file0
// CHECK:     
// CHECK:     ranges
// CHECK:     
// CHECK:       
// CHECK:        
// CHECK:         line29
// CHECK:         col3
// CHECK:         file0
// CHECK:        
// CHECK:        
// CHECK:         line43
// CHECK:         col4
// CHECK:         file0
// CHECK:        
// CHECK:       
// CHECK:     
// CHECK:     depth1
// CHECK:     extended_message
// CHECK:     Calling 'reallyPerformAction'
// CHECK:     message
// CHECK:     Calling 'reallyPerformAction'
// CHECK:    
// CHECK:    
// CHECK:     kindevent
// CHECK:     location
// CHECK:     
// CHECK:      line22
// CHECK:      col1
// CHECK:      file0
// CHECK:     
// CHECK:     depth2
// CHECK:     extended_message
// CHECK:     Entered call from 'performAction'
// CHECK:     message
// CHECK:     Entered call from 'performAction'
// CHECK:    
// CHECK:    
// CHECK:     kindcontrol
// CHECK:     edges
// CHECK:      
// CHECK:       
// CHECK:        start
// CHECK:         
// CHECK:          
// CHECK:           line22
// CHECK:           col1
// CHECK:           file0
// CHECK:          
// CHECK:          
// CHECK:           line22
// CHECK:           col6
// CHECK:           file0
// CHECK:          
// CHECK:         
// CHECK:        end
// CHECK:         
// CHECK:          
// CHECK:           line23
// CHECK:           col3
// CHECK:           file0
// CHECK:          
// CHECK:          
// CHECK:           line23
// CHECK:           col16
// CHECK:           file0
// CHECK:          
// CHECK:         
// CHECK:       
// CHECK:      
// CHECK:    
// CHECK:    
// CHECK:     kindevent
// CHECK:     location
// CHECK:     
// CHECK:      line23
// CHECK:      col3
// CHECK:      file0
// CHECK:     
// CHECK:     ranges
// CHECK:     
// CHECK:       
// CHECK:        
// CHECK:         line23
// CHECK:         col3
// CHECK:         file0
// CHECK:        
// CHECK:        
// CHECK:         line23
// CHECK:         col58
// CHECK:         file0
// CHECK:        
// CHECK:       
// CHECK:     
// CHECK:     depth2
// CHECK:     extended_message
// CHECK:     Calling anonymous block
// CHECK:     message
// CHECK:     Calling anonymous block
// CHECK:    
// CHECK:    
// CHECK:     kindevent
// CHECK:     location
// CHECK:     
// CHECK:      line29
// CHECK:      col23
// CHECK:      file0
// CHECK:     
// CHECK:     depth3
// CHECK:     extended_message
// CHECK:     Entered call from 'reallyPerformAction'
// CHECK:     message
// CHECK:     Entered call from 'reallyPerformAction'
// CHECK:    
// CHECK:    
// CHECK:     kindcontrol
// CHECK:     edges
// CHECK:      
// CHECK:       
// CHECK:        start
// CHECK:         
// CHECK:          
// CHECK:           line29
// CHECK:           col23
// CHECK:           file0
// CHECK:          
// CHECK:          
// CHECK:           line29
// CHECK:           col23
// CHECK:           file0
// CHECK:          
// CHECK:         
// CHECK:        end
// CHECK:         
// CHECK:          
// CHECK:           line31
// CHECK:           col5
// CHECK:           file0
// CHECK:          
// CHECK:          
// CHECK:           line31
// CHECK:           col6
// CHECK:           file0
// CHECK:          
// CHECK:         
// CHECK:       
// CHECK:      
// CHECK:    
// CHECK:    
// CHECK:     kindcontrol
// CHECK:     edges
// CHECK:      
// CHECK:       
// CHECK:        start
// CHECK:         
// CHECK:          
// CHECK:           line31
// CHECK:           col5
// CHECK:           file0
// CHECK:          
// CHECK:          
// CHECK:           line31
// CHECK:           col6
// CHECK:           file0
// CHECK:          
// CHECK:         
// CHECK:        end
// CHECK:         
// CHECK:          
// CHECK:           line31
// CHECK:           col9
// CHECK:           file0
// CHECK:          
// CHECK:          
// CHECK:           line31
// CHECK:           col12
// CHECK:           file0
// CHECK:          
// CHECK:         
// CHECK:       
// CHECK:      
// CHECK:    
// CHECK:    
// CHECK:     kindevent
// CHECK:     location
// CHECK:     
// CHECK:      line31
// CHECK:      col9
// CHECK:      file0
// CHECK:     
// CHECK:     ranges
// CHECK:     
// CHECK:       
// CHECK:        
// CHECK:         line31
// CHECK:         col9
// CHECK:         file0
// CHECK:        
// CHECK:        
// CHECK:         line31
// CHECK:         col12
// CHECK:         file0
// CHECK:        
// CHECK:       
// CHECK:     
// CHECK:     depth3
// CHECK:     extended_message
// CHECK:     Assuming 'cond' is not equal to 0
// CHECK:     message
// CHECK:     Assuming 'cond' is not equal to 0
// CHECK:    
// CHECK:    
// CHECK:     kindcontrol
// CHECK:     edges
// CHECK:      
// CHECK:       
// CHECK:        start
// CHECK:         
// CHECK:          
// CHECK:           line31
// CHECK:           col9
// CHECK:           file0
// CHECK:          
// CHECK:          
// CHECK:           line31
// CHECK:           col12
// CHECK:           file0
// CHECK:          
// CHECK:         
// CHECK:        end
// CHECK:         
// CHECK:          
// CHECK:           line33
// CHECK:           col7
// CHECK:           file0
// CHECK:          
// CHECK:          
// CHECK:           line33
// CHECK:           col14
// CHECK:           file0
// CHECK:          
// CHECK:         
// CHECK:       
// CHECK:      
// CHECK:    
// CHECK:    
// CHECK:     kindcontrol
// CHECK:     edges
// CHECK:      
// CHECK:       
// CHECK:        start
// CHECK:         
// CHECK:          
// CHECK:           line33
// CHECK:           col7
// CHECK:           file0
// CHECK:          
// CHECK:          
// CHECK:           line33
// CHECK:           col14
// CHECK:           file0
// CHECK:          
// CHECK:         
// CHECK:        end
// CHECK:         
// CHECK:          
// CHECK:           line33
// CHECK:           col30
// CHECK:           file0
// CHECK:          
// CHECK:          
// CHECK:           line33
// CHECK:           col30
// CHECK:           file0
// CHECK:          
// CHECK:         
// CHECK:       
// CHECK:      
// CHECK:    
// CHECK:    
// CHECK:     kindevent
// CHECK:     location
// CHECK:     
// CHECK:      line33
// CHECK:      col30
// CHECK:      file0
// CHECK:     
// CHECK:     ranges
// CHECK:     
// CHECK:       
// CHECK:        
// CHECK:         line33
// CHECK:         col30
// CHECK:         file0
// CHECK:        
// CHECK:        
// CHECK:         line33
// CHECK:         col50
// CHECK:         file0
// CHECK:        
// CHECK:       
// CHECK:     
// CHECK:     depth3
// CHECK:     extended_message
// CHECK:     NSNumber boxed expression produces an object with a +0 retain count
// CHECK:     message
// CHECK:     NSNumber boxed expression produces an object with a +0 retain count
// CHECK:    
// CHECK:    
// CHECK:     kindcontrol
// CHECK:     edges
// CHECK:      
// CHECK:       
// CHECK:        start
// CHECK:         
// CHECK:          
// CHECK:           line33
// CHECK:           col30
// CHECK:           file0
// CHECK:          
// CHECK:          
// CHECK:           line33
// CHECK:           col30
// CHECK:           file0
// CHECK:          
// CHECK:         
// CHECK:        end
// CHECK:         
// CHECK:          
// CHECK:           line35
// CHECK:           col33
// CHECK:           file0
// CHECK:          
// CHECK:          
// CHECK:           line35
// CHECK:           col38
// CHECK:           file0
// CHECK:          
// CHECK:         
// CHECK:       
// CHECK:      
// CHECK:    
// CHECK:    
// CHECK:     kindevent
// CHECK:     location
// CHECK:     
// CHECK:      line35
// CHECK:      col33
// CHECK:      file0
// CHECK:     
// CHECK:     ranges
// CHECK:     
// CHECK:       
// CHECK:        
// CHECK:         line35
// CHECK:         col33
// CHECK:         file0
// CHECK:        
// CHECK:        
// CHECK:         line35
// CHECK:         col50
// CHECK:         file0
// CHECK:        
// CHECK:       
// CHECK:     
// CHECK:     depth3
// CHECK:     extended_message
// CHECK:     Calling anonymous block
// CHECK:     message
// CHECK:     Calling anonymous block
// CHECK:    
// CHECK:    
// CHECK:     kindevent
// CHECK:     location
// CHECK:     
// CHECK:      line49
// CHECK:      col40
// CHECK:      file0
// CHECK:     
// CHECK:     depth4
// CHECK:     extended_message
// CHECK:     Entered call
// CHECK:     message
// CHECK:     Entered call
// CHECK:    
// CHECK:    
// CHECK:     kindcontrol
// CHECK:     edges
// CHECK:      
// CHECK:       
// CHECK:        start
// CHECK:         
// CHECK:          
// CHECK:           line49
// CHECK:           col40
// CHECK:           file0
// CHECK:          
// CHECK:          
// CHECK:           line49
// CHECK:           col40
// CHECK:           file0
// CHECK:          
// CHECK:         
// CHECK:        end
// CHECK:         
// CHECK:          
// CHECK:           line50
// CHECK:           col5
// CHECK:           file0
// CHECK:          
// CHECK:          
// CHECK:           line50
// CHECK:           col17
// CHECK:           file0
// CHECK:          
// CHECK:         
// CHECK:       
// CHECK:      
// CHECK:    
// CHECK:    
// CHECK:     kindcontrol
// CHECK:     edges
// CHECK:      
// CHECK:       
// CHECK:        start
// CHECK:         
// CHECK:          
// CHECK:           line50
// CHECK:           col5
// CHECK:           file0
// CHECK:          
// CHECK:          
// CHECK:           line50
// CHECK:           col17
// CHECK:           file0
// CHECK:          
// CHECK:         
// CHECK:        end
// CHECK:         
// CHECK:          
// CHECK:           line50
// CHECK:           col21
// CHECK:           file0
// CHECK:          
// CHECK:          
// CHECK:           line50
// CHECK:           col21
// CHECK:           file0
// CHECK:          
// CHECK:         
// CHECK:       
// CHECK:      
// CHECK:    
// CHECK:    
// CHECK:     kindevent
// CHECK:     location
// CHECK:     
// CHECK:      line50
// CHECK:      col21
// CHECK:      file0
// CHECK:     
// CHECK:     ranges
// CHECK:     
// CHECK:       
// CHECK:        
// CHECK:         line50
// CHECK:         col21
// CHECK:         file0
// CHECK:        
// CHECK:        
// CHECK:         line50
// CHECK:         col39
// CHECK:         file0
// CHECK:        
// CHECK:       
// CHECK:       
// CHECK:        
// CHECK:         line50
// CHECK:         col22
// CHECK:         file0
// CHECK:        
// CHECK:        
// CHECK:         line50
// CHECK:         col31
// CHECK:         file0
// CHECK:        
// CHECK:       
// CHECK:     
// CHECK:     depth4
// CHECK:     extended_message
// CHECK:     Reference count incremented. The object now has a +1 retain count
// CHECK:     message
// CHECK:     Reference count incremented. The object now has a +1 retain count
// CHECK:    
// CHECK:    
// CHECK:     kindevent
// CHECK:     location
// CHECK:     
// CHECK:      line35
// CHECK:      col33
// CHECK:      file0
// CHECK:     
// CHECK:     ranges
// CHECK:     
// CHECK:       
// CHECK:        
// CHECK:         line35
// CHECK:         col33
// CHECK:         file0
// CHECK:        
// CHECK:        
// CHECK:         line35
// CHECK:         col50
// CHECK:         file0
// CHECK:        
// CHECK:       
// CHECK:     
// CHECK:     depth3
// CHECK:     extended_message
// CHECK:     Returning to caller
// CHECK:     message
// CHECK:     Returning to caller
// CHECK:    
// CHECK:    
// CHECK:     kindcontrol
// CHECK:     edges
// CHECK:      
// CHECK:       
// CHECK:        start
// CHECK:         
// CHECK:          
// CHECK:           line35
// CHECK:           col33
// CHECK:           file0
// CHECK:          
// CHECK:          
// CHECK:           line35
// CHECK:           col38
// CHECK:           file0
// CHECK:          
// CHECK:         
// CHECK:        end
// CHECK:         
// CHECK:          
// CHECK:           line37
// CHECK:           col7
// CHECK:           file0
// CHECK:          
// CHECK:          
// CHECK:           line37
// CHECK:           col8
// CHECK:           file0
// CHECK:          
// CHECK:         
// CHECK:       
// CHECK:      
// CHECK:    
// CHECK:    
// CHECK:     kindcontrol
// CHECK:     edges
// CHECK:      
// CHECK:       
// CHECK:        start
// CHECK:         
// CHECK:          
// CHECK:           line37
// CHECK:           col7
// CHECK:           file0
// CHECK:          
// CHECK:          
// CHECK:           line37
// CHECK:           col8
// CHECK:           file0
// CHECK:          
// CHECK:         
// CHECK:        end
// CHECK:         
// CHECK:          
// CHECK:           line40
// CHECK:           col7
// CHECK:           file0
// CHECK:          
// CHECK:          
// CHECK:           line40
// CHECK:           col18
// CHECK:           file0
// CHECK:          
// CHECK:         
// CHECK:       
// CHECK:      
// CHECK:    
// CHECK:    
// CHECK:     kindevent
// CHECK:     location
// CHECK:     
// CHECK:      line23
// CHECK:      col3
// CHECK:      file0
// CHECK:     
// CHECK:     ranges
// CHECK:     
// CHECK:       
// CHECK:        
// CHECK:         line23
// CHECK:         col3
// CHECK:         file0
// CHECK:        
// CHECK:        
// CHECK:         line23
// CHECK:         col58
// CHECK:         file0
// CHECK:        
// CHECK:       
// CHECK:     
// CHECK:     depth2
// CHECK:     extended_message
// CHECK:     Returning to caller
// CHECK:     message
// CHECK:     Returning to caller
// CHECK:    
// CHECK:    
// CHECK:     kindcontrol
// CHECK:     edges
// CHECK:      
// CHECK:       
// CHECK:        start
// CHECK:         
// CHECK:          
// CHECK:           line23
// CHECK:           col3
// CHECK:           file0
// CHECK:          
// CHECK:          
// CHECK:           line23
// CHECK:           col16
// CHECK:           file0
// CHECK:          
// CHECK:         
// CHECK:        end
// CHECK:         
// CHECK:          
// CHECK:           line24
// CHECK:           col3
// CHECK:           file0
// CHECK:          
// CHECK:          
// CHECK:           line24
// CHECK:           col16
// CHECK:           file0
// CHECK:          
// CHECK:         
// CHECK:       
// CHECK:      
// CHECK:    
// CHECK:    
// CHECK:     kindevent
// CHECK:     location
// CHECK:     
// CHECK:      line24
// CHECK:      col3
// CHECK:      file0
// CHECK:     
// CHECK:     ranges
// CHECK:     
// CHECK:       
// CHECK:        
// CHECK:         line24
// CHECK:         col3
// CHECK:         file0
// CHECK:        
// CHECK:        
// CHECK:         line24
// CHECK:         col58
// CHECK:         file0
// CHECK:        
// CHECK:       
// CHECK:     
// CHECK:     depth2
// CHECK:     extended_message
// CHECK:     Calling anonymous block
// CHECK:     message
// CHECK:     Calling anonymous block
// CHECK:    
// CHECK:    
// CHECK:     kindevent
// CHECK:     location
// CHECK:     
// CHECK:      line29
// CHECK:      col23
// CHECK:      file0
// CHECK:     
// CHECK:     depth3
// CHECK:     extended_message
// CHECK:     Entered call from 'reallyPerformAction'
// CHECK:     message
// CHECK:     Entered call from 'reallyPerformAction'
// CHECK:    
// CHECK:    
// CHECK:     kindcontrol
// CHECK:     edges
// CHECK:      
// CHECK:       
// CHECK:        start
// CHECK:         
// CHECK:          
// CHECK:           line29
// CHECK:           col23
// CHECK:           file0
// CHECK:          
// CHECK:          
// CHECK:           line29
// CHECK:           col23
// CHECK:           file0
// CHECK:          
// CHECK:         
// CHECK:        end
// CHECK:         
// CHECK:          
// CHECK:           line31
// CHECK:           col5
// CHECK:           file0
// CHECK:          
// CHECK:          
// CHECK:           line31
// CHECK:           col6
// CHECK:           file0
// CHECK:          
// CHECK:         
// CHECK:       
// CHECK:      
// CHECK:    
// CHECK:    
// CHECK:     kindcontrol
// CHECK:     edges
// CHECK:      
// CHECK:       
// CHECK:        start
// CHECK:         
// CHECK:          
// CHECK:           line31
// CHECK:           col5
// CHECK:           file0
// CHECK:          
// CHECK:          
// CHECK:           line31
// CHECK:           col6
// CHECK:           file0
// CHECK:          
// CHECK:         
// CHECK:        end
// CHECK:         
// CHECK:          
// CHECK:           line31
// CHECK:           col9
// CHECK:           file0
// CHECK:          
// CHECK:          
// CHECK:           line31
// CHECK:           col12
// CHECK:           file0
// CHECK:          
// CHECK:         
// CHECK:       
// CHECK:      
// CHECK:    
// CHECK:    
// CHECK:     kindevent
// CHECK:     location
// CHECK:     
// CHECK:      line31
// CHECK:      col9
// CHECK:      file0
// CHECK:     
// CHECK:     ranges
// CHECK:     
// CHECK:       
// CHECK:        
// CHECK:         line31
// CHECK:         col9
// CHECK:         file0
// CHECK:        
// CHECK:        
// CHECK:         line31
// CHECK:         col12
// CHECK:         file0
// CHECK:        
// CHECK:       
// CHECK:     
// CHECK:     depth3
// CHECK:     extended_message
// CHECK:     Assuming 'cond' is not equal to 0
// CHECK:     message
// CHECK:     Assuming 'cond' is not equal to 0
// CHECK:    
// CHECK:    
// CHECK:     kindcontrol
// CHECK:     edges
// CHECK:      
// CHECK:       
// CHECK:        start
// CHECK:         
// CHECK:          
// CHECK:           line31
// CHECK:           col9
// CHECK:           file0
// CHECK:          
// CHECK:          
// CHECK:           line31
// CHECK:           col12
// CHECK:           file0
// CHECK:          
// CHECK:         
// CHECK:        end
// CHECK:         
// CHECK:          
// CHECK:           line33
// CHECK:           col7
// CHECK:           file0
// CHECK:          
// CHECK:          
// CHECK:           line33
// CHECK:           col14
// CHECK:           file0
// CHECK:          
// CHECK:         
// CHECK:       
// CHECK:      
// CHECK:    
// CHECK:    
// CHECK:     kindcontrol
// CHECK:     edges
// CHECK:      
// CHECK:       
// CHECK:        start
// CHECK:         
// CHECK:          
// CHECK:           line33
// CHECK:           col7
// CHECK:           file0
// CHECK:          
// CHECK:          
// CHECK:           line33
// CHECK:           col14
// CHECK:           file0
// CHECK:          
// CHECK:         
// CHECK:        end
// CHECK:         
// CHECK:          
// CHECK:           line35
// CHECK:           col33
// CHECK:           file0
// CHECK:          
// CHECK:          
// CHECK:           line35
// CHECK:           col38
// CHECK:           file0
// CHECK:          
// CHECK:         
// CHECK:       
// CHECK:      
// CHECK:    
// CHECK:    
// CHECK:     kindevent
// CHECK:     location
// CHECK:     
// CHECK:      line35
// CHECK:      col33
// CHECK:      file0
// CHECK:     
// CHECK:     ranges
// CHECK:     
// CHECK:       
// CHECK:        
// CHECK:         line35
// CHECK:         col33
// CHECK:         file0
// CHECK:        
// CHECK:        
// CHECK:         line35
// CHECK:         col50
// CHECK:         file0
// CHECK:        
// CHECK:       
// CHECK:     
// CHECK:     depth3
// CHECK:     extended_message
// CHECK:     Calling anonymous block
// CHECK:     message
// CHECK:     Calling anonymous block
// CHECK:    
// CHECK:    
// CHECK:     kindevent
// CHECK:     location
// CHECK:     
// CHECK:      line49
// CHECK:      col40
// CHECK:      file0
// CHECK:     
// CHECK:     depth4
// CHECK:     extended_message
// CHECK:     Entered call
// CHECK:     message
// CHECK:     Entered call
// CHECK:    
// CHECK:    
// CHECK:     kindcontrol
// CHECK:     edges
// CHECK:      
// CHECK:       
// CHECK:        start
// CHECK:         
// CHECK:          
// CHECK:           line49
// CHECK:           col40
// CHECK:           file0
// CHECK:          
// CHECK:          
// CHECK:           line49
// CHECK:           col40
// CHECK:           file0
// CHECK:          
// CHECK:         
// CHECK:        end
// CHECK:         
// CHECK:          
// CHECK:           line50
// CHECK:           col5
// CHECK:           file0
// CHECK:          
// CHECK:          
// CHECK:           line50
// CHECK:           col17
// CHECK:           file0
// CHECK:          
// CHECK:         
// CHECK:       
// CHECK:      
// CHECK:    
// CHECK:    
// CHECK:     kindcontrol
// CHECK:     edges
// CHECK:      
// CHECK:       
// CHECK:        start
// CHECK:         
// CHECK:          
// CHECK:           line50
// CHECK:           col5
// CHECK:           file0
// CHECK:          
// CHECK:          
// CHECK:           line50
// CHECK:           col17
// CHECK:           file0
// CHECK:          
// CHECK:         
// CHECK:        end
// CHECK:         
// CHECK:          
// CHECK:           line52
// CHECK:           col5
// CHECK:           file0
// CHECK:          
// CHECK:          
// CHECK:           line52
// CHECK:           col10
// CHECK:           file0
// CHECK:          
// CHECK:         
// CHECK:       
// CHECK:      
// CHECK:    
// CHECK:    
// CHECK:     kindevent
// CHECK:     location
// CHECK:     
// CHECK:      line52
// CHECK:      col5
// CHECK:      file0
// CHECK:     
// CHECK:     ranges
// CHECK:     
// CHECK:       
// CHECK:        
// CHECK:         line52
// CHECK:         col5
// CHECK:         file0
// CHECK:        
// CHECK:        
// CHECK:         line52
// CHECK:         col21
// CHECK:         file0
// CHECK:        
// CHECK:       
// CHECK:     
// CHECK:     depth4
// CHECK:     extended_message
// CHECK:     Object leaked: allocated object is not referenced later in this execution path and has a retain count of +1
// CHECK:     message
// CHECK:     Object leaked: allocated object is not referenced later in this execution path and has a retain count of +1
// CHECK:    
// CHECK:   
// CHECK:   descriptionPotential leak of an object
// CHECK:   categoryMemory (Core Foundation/Objective-C)
// CHECK:   typeLeak
// CHECK:  location
// CHECK:  
// CHECK:   line52
// CHECK:   col5
// CHECK:   file0
// CHECK:  
// CHECK:  
// CHECK: 
// CHECK:
// CHECK: