|  | // RUN: %clang_analyze_cc1 -fblocks -analyzer-checker core,unix -verify %s | 
|  |  | 
|  | typedef __typeof(sizeof(int)) size_t; | 
|  | void *calloc(size_t, size_t); | 
|  |  | 
|  | typedef struct dispatch_queue_s *dispatch_queue_t; | 
|  | typedef void (^dispatch_block_t)(void); | 
|  | void dispatch_sync(dispatch_queue_t, dispatch_block_t); | 
|  |  | 
|  | void test_no_state_change_in_body_farm(dispatch_queue_t queue) { | 
|  | dispatch_sync(queue, ^{}); // no-crash | 
|  | calloc(1, 1); | 
|  | } // expected-warning{{Potential memory leak}} | 
|  |  | 
|  | void test_no_state_change_in_body_farm_2(dispatch_queue_t queue) { | 
|  | void *p = calloc(1, 1); | 
|  | dispatch_sync(queue, ^{}); // no-crash | 
|  | p = 0; | 
|  | } // expected-warning{{Potential leak of memory pointed to by 'p'}} |