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