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