1*67e74705SXin Li // RUN: %clang_cc1 -analyze -analyzer-checker=core,unix -analyzer-eagerly-assume -verify %s
2*67e74705SXin Li // RUN: %clang_cc1 -analyze -analyzer-checker=core,unix -analyzer-eagerly-assume -analyzer-output=plist-multi-file -analyzer-config path-diagnostics-alternate=ture %s -o %t.plist
3*67e74705SXin Li // RUN: FileCheck --input-file=%t.plist %s
4*67e74705SXin Li
5*67e74705SXin Li
6*67e74705SXin Li typedef __typeof(sizeof(int)) size_t;
7*67e74705SXin Li void *malloc(size_t);
8*67e74705SXin Li
9*67e74705SXin Li #define mallocmemory int *x = (int*)malloc(12);
noteOnMacro(int y)10*67e74705SXin Li void noteOnMacro(int y) {
11*67e74705SXin Li y++;
12*67e74705SXin Li y--;
13*67e74705SXin Li mallocmemory
14*67e74705SXin Li y++;
15*67e74705SXin Li y++;
16*67e74705SXin Li delete x; // expected-warning {{Memory allocated by malloc() should be deallocated by free(), not 'delete'}}
17*67e74705SXin Li }
18*67e74705SXin Li
macroIsFirstInFunction(int y)19*67e74705SXin Li void macroIsFirstInFunction(int y) {
20*67e74705SXin Li mallocmemory
21*67e74705SXin Li y++; // expected-warning {{Potential leak of memory pointed to by 'x'}}
22*67e74705SXin Li }
23*67e74705SXin Li
24*67e74705SXin Li #define checkmacro p==0
25*67e74705SXin Li void macroInExpressionAux(bool b);
macroInExpression(int * p,int y)26*67e74705SXin Li int macroInExpression(int *p, int y) {;
27*67e74705SXin Li y++;
28*67e74705SXin Li macroInExpressionAux(checkmacro);
29*67e74705SXin Li
30*67e74705SXin Li return *p; // expected-warning {{Dereference of null pointer}}
31*67e74705SXin Li }
32*67e74705SXin Li
33*67e74705SXin Li #define noPathNoteMacro y+y
macroInExpressionNoNote(int * p,int y)34*67e74705SXin Li int macroInExpressionNoNote(int *p, int y) {;
35*67e74705SXin Li y++;
36*67e74705SXin Li if (5 + noPathNoteMacro)
37*67e74705SXin Li if (p)
38*67e74705SXin Li ;
39*67e74705SXin Li return *p; // expected-warning {{Dereference of null pointer}}
40*67e74705SXin Li }
41*67e74705SXin Li
42*67e74705SXin Li #define macroWithArg(mp) mp==0
macroWithArgInExpression(int * p,int y)43*67e74705SXin Li int macroWithArgInExpression(int *p, int y) {;
44*67e74705SXin Li y++;
45*67e74705SXin Li if (macroWithArg(p))
46*67e74705SXin Li ;
47*67e74705SXin Li return *p; // expected-warning {{Dereference of null pointer}}
48*67e74705SXin Li }
49*67e74705SXin Li
50*67e74705SXin Li #define multiNoteMacroWithError \
51*67e74705SXin Li if (p) \
52*67e74705SXin Li ;\
53*67e74705SXin Li *p = 5;
useMultiNoteMacroWithError(int * p,int y)54*67e74705SXin Li int useMultiNoteMacroWithError(int *p, int y) {;
55*67e74705SXin Li y++;
56*67e74705SXin Li multiNoteMacroWithError // expected-warning {{Dereference of null pointer}}
57*67e74705SXin Li
58*67e74705SXin Li return *p;
59*67e74705SXin Li }
60*67e74705SXin Li
61*67e74705SXin Li #define multiNoteMacro \
62*67e74705SXin Li if (p) \
63*67e74705SXin Li ;\
64*67e74705SXin Li if (y) \
65*67e74705SXin Li ;
useMultiNote(int * p,int y)66*67e74705SXin Li int useMultiNote(int *p, int y) {;
67*67e74705SXin Li y++;
68*67e74705SXin Li multiNoteMacro
69*67e74705SXin Li
70*67e74705SXin Li return *p; // expected-warning {{Dereference of null pointer}}
71*67e74705SXin Li }
72*67e74705SXin Li
73*67e74705SXin Li #define CALL_FN(a) null_deref(a)
74*67e74705SXin Li
null_deref(int * a)75*67e74705SXin Li void null_deref(int *a) {
76*67e74705SXin Li if (a)
77*67e74705SXin Li return;
78*67e74705SXin Li *a = 1; // expected-warning {{Dereference of null pointer}}
79*67e74705SXin Li }
80*67e74705SXin Li
test1()81*67e74705SXin Li void test1() {
82*67e74705SXin Li CALL_FN(0);
83*67e74705SXin Li }
84*67e74705SXin Li
test2(int * p)85*67e74705SXin Li void test2(int *p) {
86*67e74705SXin Li CALL_FN(p);
87*67e74705SXin Li }
88*67e74705SXin Li // CHECK: <key>diagnostics</key>
89*67e74705SXin Li // CHECK-NEXT: <array>
90*67e74705SXin Li // CHECK-NEXT: <dict>
91*67e74705SXin Li // CHECK-NEXT: <key>path</key>
92*67e74705SXin Li // CHECK-NEXT: <array>
93*67e74705SXin Li // CHECK-NEXT: <dict>
94*67e74705SXin Li // CHECK-NEXT: <key>kind</key><string>control</string>
95*67e74705SXin Li // CHECK-NEXT: <key>edges</key>
96*67e74705SXin Li // CHECK-NEXT: <array>
97*67e74705SXin Li // CHECK-NEXT: <dict>
98*67e74705SXin Li // CHECK-NEXT: <key>start</key>
99*67e74705SXin Li // CHECK-NEXT: <array>
100*67e74705SXin Li // CHECK-NEXT: <dict>
101*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>11</integer>
102*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
103*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
104*67e74705SXin Li // CHECK-NEXT: </dict>
105*67e74705SXin Li // CHECK-NEXT: <dict>
106*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>11</integer>
107*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
108*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
109*67e74705SXin Li // CHECK-NEXT: </dict>
110*67e74705SXin Li // CHECK-NEXT: </array>
111*67e74705SXin Li // CHECK-NEXT: <key>end</key>
112*67e74705SXin Li // CHECK-NEXT: <array>
113*67e74705SXin Li // CHECK-NEXT: <dict>
114*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>13</integer>
115*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
116*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
117*67e74705SXin Li // CHECK-NEXT: </dict>
118*67e74705SXin Li // CHECK-NEXT: <dict>
119*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>13</integer>
120*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>14</integer>
121*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
122*67e74705SXin Li // CHECK-NEXT: </dict>
123*67e74705SXin Li // CHECK-NEXT: </array>
124*67e74705SXin Li // CHECK-NEXT: </dict>
125*67e74705SXin Li // CHECK-NEXT: </array>
126*67e74705SXin Li // CHECK-NEXT: </dict>
127*67e74705SXin Li // CHECK-NEXT: <dict>
128*67e74705SXin Li // CHECK-NEXT: <key>kind</key><string>event</string>
129*67e74705SXin Li // CHECK-NEXT: <key>location</key>
130*67e74705SXin Li // CHECK-NEXT: <dict>
131*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>13</integer>
132*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
133*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
134*67e74705SXin Li // CHECK-NEXT: </dict>
135*67e74705SXin Li // CHECK-NEXT: <key>ranges</key>
136*67e74705SXin Li // CHECK-NEXT: <array>
137*67e74705SXin Li // CHECK-NEXT: <array>
138*67e74705SXin Li // CHECK-NEXT: <dict>
139*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>13</integer>
140*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
141*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
142*67e74705SXin Li // CHECK-NEXT: </dict>
143*67e74705SXin Li // CHECK-NEXT: <dict>
144*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>13</integer>
145*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>14</integer>
146*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
147*67e74705SXin Li // CHECK-NEXT: </dict>
148*67e74705SXin Li // CHECK-NEXT: </array>
149*67e74705SXin Li // CHECK-NEXT: </array>
150*67e74705SXin Li // CHECK-NEXT: <key>depth</key><integer>0</integer>
151*67e74705SXin Li // CHECK-NEXT: <key>extended_message</key>
152*67e74705SXin Li // CHECK-NEXT: <string>Memory is allocated</string>
153*67e74705SXin Li // CHECK-NEXT: <key>message</key>
154*67e74705SXin Li // CHECK-NEXT: <string>Memory is allocated</string>
155*67e74705SXin Li // CHECK-NEXT: </dict>
156*67e74705SXin Li // CHECK-NEXT: <dict>
157*67e74705SXin Li // CHECK-NEXT: <key>kind</key><string>control</string>
158*67e74705SXin Li // CHECK-NEXT: <key>edges</key>
159*67e74705SXin Li // CHECK-NEXT: <array>
160*67e74705SXin Li // CHECK-NEXT: <dict>
161*67e74705SXin Li // CHECK-NEXT: <key>start</key>
162*67e74705SXin Li // CHECK-NEXT: <array>
163*67e74705SXin Li // CHECK-NEXT: <dict>
164*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>13</integer>
165*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
166*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
167*67e74705SXin Li // CHECK-NEXT: </dict>
168*67e74705SXin Li // CHECK-NEXT: <dict>
169*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>13</integer>
170*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>14</integer>
171*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
172*67e74705SXin Li // CHECK-NEXT: </dict>
173*67e74705SXin Li // CHECK-NEXT: </array>
174*67e74705SXin Li // CHECK-NEXT: <key>end</key>
175*67e74705SXin Li // CHECK-NEXT: <array>
176*67e74705SXin Li // CHECK-NEXT: <dict>
177*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>16</integer>
178*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
179*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
180*67e74705SXin Li // CHECK-NEXT: </dict>
181*67e74705SXin Li // CHECK-NEXT: <dict>
182*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>16</integer>
183*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>8</integer>
184*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
185*67e74705SXin Li // CHECK-NEXT: </dict>
186*67e74705SXin Li // CHECK-NEXT: </array>
187*67e74705SXin Li // CHECK-NEXT: </dict>
188*67e74705SXin Li // CHECK-NEXT: </array>
189*67e74705SXin Li // CHECK-NEXT: </dict>
190*67e74705SXin Li // CHECK-NEXT: <dict>
191*67e74705SXin Li // CHECK-NEXT: <key>kind</key><string>event</string>
192*67e74705SXin Li // CHECK-NEXT: <key>location</key>
193*67e74705SXin Li // CHECK-NEXT: <dict>
194*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>16</integer>
195*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
196*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
197*67e74705SXin Li // CHECK-NEXT: </dict>
198*67e74705SXin Li // CHECK-NEXT: <key>ranges</key>
199*67e74705SXin Li // CHECK-NEXT: <array>
200*67e74705SXin Li // CHECK-NEXT: <array>
201*67e74705SXin Li // CHECK-NEXT: <dict>
202*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>16</integer>
203*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>10</integer>
204*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
205*67e74705SXin Li // CHECK-NEXT: </dict>
206*67e74705SXin Li // CHECK-NEXT: <dict>
207*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>16</integer>
208*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>10</integer>
209*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
210*67e74705SXin Li // CHECK-NEXT: </dict>
211*67e74705SXin Li // CHECK-NEXT: </array>
212*67e74705SXin Li // CHECK-NEXT: </array>
213*67e74705SXin Li // CHECK-NEXT: <key>depth</key><integer>0</integer>
214*67e74705SXin Li // CHECK-NEXT: <key>extended_message</key>
215*67e74705SXin Li // CHECK-NEXT: <string>Memory allocated by malloc() should be deallocated by free(), not 'delete'</string>
216*67e74705SXin Li // CHECK-NEXT: <key>message</key>
217*67e74705SXin Li // CHECK-NEXT: <string>Memory allocated by malloc() should be deallocated by free(), not 'delete'</string>
218*67e74705SXin Li // CHECK-NEXT: </dict>
219*67e74705SXin Li // CHECK-NEXT: </array>
220*67e74705SXin Li // CHECK-NEXT: <key>description</key><string>Memory allocated by malloc() should be deallocated by free(), not 'delete'</string>
221*67e74705SXin Li // CHECK-NEXT: <key>category</key><string>Memory Error</string>
222*67e74705SXin Li // CHECK-NEXT: <key>type</key><string>Bad deallocator</string>
223*67e74705SXin Li // CHECK-NEXT: <key>check_name</key><string>unix.MismatchedDeallocator</string>
224*67e74705SXin Li // CHECK-NEXT: <!-- This hash is experimental and going to change! -->
225*67e74705SXin Li // CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>81d63a132b4ef0cc96734c17440a1c26</string>
226*67e74705SXin Li // CHECK-NEXT: <key>issue_context_kind</key><string>function</string>
227*67e74705SXin Li // CHECK-NEXT: <key>issue_context</key><string>noteOnMacro</string>
228*67e74705SXin Li // CHECK-NEXT: <key>issue_hash_function_offset</key><string>6</string>
229*67e74705SXin Li // CHECK-NEXT: <key>location</key>
230*67e74705SXin Li // CHECK-NEXT: <dict>
231*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>16</integer>
232*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
233*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
234*67e74705SXin Li // CHECK-NEXT: </dict>
235*67e74705SXin Li // CHECK-NEXT: </dict>
236*67e74705SXin Li // CHECK-NEXT: <dict>
237*67e74705SXin Li // CHECK-NEXT: <key>path</key>
238*67e74705SXin Li // CHECK-NEXT: <array>
239*67e74705SXin Li // CHECK-NEXT: <dict>
240*67e74705SXin Li // CHECK-NEXT: <key>kind</key><string>event</string>
241*67e74705SXin Li // CHECK-NEXT: <key>location</key>
242*67e74705SXin Li // CHECK-NEXT: <dict>
243*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>20</integer>
244*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
245*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
246*67e74705SXin Li // CHECK-NEXT: </dict>
247*67e74705SXin Li // CHECK-NEXT: <key>ranges</key>
248*67e74705SXin Li // CHECK-NEXT: <array>
249*67e74705SXin Li // CHECK-NEXT: <array>
250*67e74705SXin Li // CHECK-NEXT: <dict>
251*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>20</integer>
252*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
253*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
254*67e74705SXin Li // CHECK-NEXT: </dict>
255*67e74705SXin Li // CHECK-NEXT: <dict>
256*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>20</integer>
257*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>14</integer>
258*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
259*67e74705SXin Li // CHECK-NEXT: </dict>
260*67e74705SXin Li // CHECK-NEXT: </array>
261*67e74705SXin Li // CHECK-NEXT: </array>
262*67e74705SXin Li // CHECK-NEXT: <key>depth</key><integer>0</integer>
263*67e74705SXin Li // CHECK-NEXT: <key>extended_message</key>
264*67e74705SXin Li // CHECK-NEXT: <string>Memory is allocated</string>
265*67e74705SXin Li // CHECK-NEXT: <key>message</key>
266*67e74705SXin Li // CHECK-NEXT: <string>Memory is allocated</string>
267*67e74705SXin Li // CHECK-NEXT: </dict>
268*67e74705SXin Li // CHECK-NEXT: <dict>
269*67e74705SXin Li // CHECK-NEXT: <key>kind</key><string>control</string>
270*67e74705SXin Li // CHECK-NEXT: <key>edges</key>
271*67e74705SXin Li // CHECK-NEXT: <array>
272*67e74705SXin Li // CHECK-NEXT: <dict>
273*67e74705SXin Li // CHECK-NEXT: <key>start</key>
274*67e74705SXin Li // CHECK-NEXT: <array>
275*67e74705SXin Li // CHECK-NEXT: <dict>
276*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>20</integer>
277*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
278*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
279*67e74705SXin Li // CHECK-NEXT: </dict>
280*67e74705SXin Li // CHECK-NEXT: <dict>
281*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>20</integer>
282*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>14</integer>
283*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
284*67e74705SXin Li // CHECK-NEXT: </dict>
285*67e74705SXin Li // CHECK-NEXT: </array>
286*67e74705SXin Li // CHECK-NEXT: <key>end</key>
287*67e74705SXin Li // CHECK-NEXT: <array>
288*67e74705SXin Li // CHECK-NEXT: <dict>
289*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>21</integer>
290*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
291*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
292*67e74705SXin Li // CHECK-NEXT: </dict>
293*67e74705SXin Li // CHECK-NEXT: <dict>
294*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>21</integer>
295*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
296*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
297*67e74705SXin Li // CHECK-NEXT: </dict>
298*67e74705SXin Li // CHECK-NEXT: </array>
299*67e74705SXin Li // CHECK-NEXT: </dict>
300*67e74705SXin Li // CHECK-NEXT: </array>
301*67e74705SXin Li // CHECK-NEXT: </dict>
302*67e74705SXin Li // CHECK-NEXT: <dict>
303*67e74705SXin Li // CHECK-NEXT: <key>kind</key><string>event</string>
304*67e74705SXin Li // CHECK-NEXT: <key>location</key>
305*67e74705SXin Li // CHECK-NEXT: <dict>
306*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>21</integer>
307*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
308*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
309*67e74705SXin Li // CHECK-NEXT: </dict>
310*67e74705SXin Li // CHECK-NEXT: <key>depth</key><integer>0</integer>
311*67e74705SXin Li // CHECK-NEXT: <key>extended_message</key>
312*67e74705SXin Li // CHECK-NEXT: <string>Potential leak of memory pointed to by 'x'</string>
313*67e74705SXin Li // CHECK-NEXT: <key>message</key>
314*67e74705SXin Li // CHECK-NEXT: <string>Potential leak of memory pointed to by 'x'</string>
315*67e74705SXin Li // CHECK-NEXT: </dict>
316*67e74705SXin Li // CHECK-NEXT: </array>
317*67e74705SXin Li // CHECK-NEXT: <key>description</key><string>Potential leak of memory pointed to by 'x'</string>
318*67e74705SXin Li // CHECK-NEXT: <key>category</key><string>Memory Error</string>
319*67e74705SXin Li // CHECK-NEXT: <key>type</key><string>Memory leak</string>
320*67e74705SXin Li // CHECK-NEXT: <key>check_name</key><string>unix.Malloc</string>
321*67e74705SXin Li // CHECK-NEXT: <!-- This hash is experimental and going to change! -->
322*67e74705SXin Li // CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>2d723d9fb4e5f10dd54a7396866dfce4</string>
323*67e74705SXin Li // CHECK-NEXT: <key>issue_context_kind</key><string>function</string>
324*67e74705SXin Li // CHECK-NEXT: <key>issue_context</key><string>macroIsFirstInFunction</string>
325*67e74705SXin Li // CHECK-NEXT: <key>issue_hash_function_offset</key><string>1</string>
326*67e74705SXin Li // CHECK-NEXT: <key>location</key>
327*67e74705SXin Li // CHECK-NEXT: <dict>
328*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>21</integer>
329*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
330*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
331*67e74705SXin Li // CHECK-NEXT: </dict>
332*67e74705SXin Li // CHECK-NEXT: </dict>
333*67e74705SXin Li // CHECK-NEXT: <dict>
334*67e74705SXin Li // CHECK-NEXT: <key>path</key>
335*67e74705SXin Li // CHECK-NEXT: <array>
336*67e74705SXin Li // CHECK-NEXT: <dict>
337*67e74705SXin Li // CHECK-NEXT: <key>kind</key><string>control</string>
338*67e74705SXin Li // CHECK-NEXT: <key>edges</key>
339*67e74705SXin Li // CHECK-NEXT: <array>
340*67e74705SXin Li // CHECK-NEXT: <dict>
341*67e74705SXin Li // CHECK-NEXT: <key>start</key>
342*67e74705SXin Li // CHECK-NEXT: <array>
343*67e74705SXin Li // CHECK-NEXT: <dict>
344*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>27</integer>
345*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
346*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
347*67e74705SXin Li // CHECK-NEXT: </dict>
348*67e74705SXin Li // CHECK-NEXT: <dict>
349*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>27</integer>
350*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
351*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
352*67e74705SXin Li // CHECK-NEXT: </dict>
353*67e74705SXin Li // CHECK-NEXT: </array>
354*67e74705SXin Li // CHECK-NEXT: <key>end</key>
355*67e74705SXin Li // CHECK-NEXT: <array>
356*67e74705SXin Li // CHECK-NEXT: <dict>
357*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>28</integer>
358*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
359*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
360*67e74705SXin Li // CHECK-NEXT: </dict>
361*67e74705SXin Li // CHECK-NEXT: <dict>
362*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>28</integer>
363*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>22</integer>
364*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
365*67e74705SXin Li // CHECK-NEXT: </dict>
366*67e74705SXin Li // CHECK-NEXT: </array>
367*67e74705SXin Li // CHECK-NEXT: </dict>
368*67e74705SXin Li // CHECK-NEXT: </array>
369*67e74705SXin Li // CHECK-NEXT: </dict>
370*67e74705SXin Li // CHECK-NEXT: <dict>
371*67e74705SXin Li // CHECK-NEXT: <key>kind</key><string>control</string>
372*67e74705SXin Li // CHECK-NEXT: <key>edges</key>
373*67e74705SXin Li // CHECK-NEXT: <array>
374*67e74705SXin Li // CHECK-NEXT: <dict>
375*67e74705SXin Li // CHECK-NEXT: <key>start</key>
376*67e74705SXin Li // CHECK-NEXT: <array>
377*67e74705SXin Li // CHECK-NEXT: <dict>
378*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>28</integer>
379*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
380*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
381*67e74705SXin Li // CHECK-NEXT: </dict>
382*67e74705SXin Li // CHECK-NEXT: <dict>
383*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>28</integer>
384*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>22</integer>
385*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
386*67e74705SXin Li // CHECK-NEXT: </dict>
387*67e74705SXin Li // CHECK-NEXT: </array>
388*67e74705SXin Li // CHECK-NEXT: <key>end</key>
389*67e74705SXin Li // CHECK-NEXT: <array>
390*67e74705SXin Li // CHECK-NEXT: <dict>
391*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>28</integer>
392*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>24</integer>
393*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
394*67e74705SXin Li // CHECK-NEXT: </dict>
395*67e74705SXin Li // CHECK-NEXT: <dict>
396*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>28</integer>
397*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>33</integer>
398*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
399*67e74705SXin Li // CHECK-NEXT: </dict>
400*67e74705SXin Li // CHECK-NEXT: </array>
401*67e74705SXin Li // CHECK-NEXT: </dict>
402*67e74705SXin Li // CHECK-NEXT: </array>
403*67e74705SXin Li // CHECK-NEXT: </dict>
404*67e74705SXin Li // CHECK-NEXT: <dict>
405*67e74705SXin Li // CHECK-NEXT: <key>kind</key><string>event</string>
406*67e74705SXin Li // CHECK-NEXT: <key>location</key>
407*67e74705SXin Li // CHECK-NEXT: <dict>
408*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>28</integer>
409*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>24</integer>
410*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
411*67e74705SXin Li // CHECK-NEXT: </dict>
412*67e74705SXin Li // CHECK-NEXT: <key>ranges</key>
413*67e74705SXin Li // CHECK-NEXT: <array>
414*67e74705SXin Li // CHECK-NEXT: <array>
415*67e74705SXin Li // CHECK-NEXT: <dict>
416*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>28</integer>
417*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>24</integer>
418*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
419*67e74705SXin Li // CHECK-NEXT: </dict>
420*67e74705SXin Li // CHECK-NEXT: <dict>
421*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>28</integer>
422*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>33</integer>
423*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
424*67e74705SXin Li // CHECK-NEXT: </dict>
425*67e74705SXin Li // CHECK-NEXT: </array>
426*67e74705SXin Li // CHECK-NEXT: </array>
427*67e74705SXin Li // CHECK-NEXT: <key>depth</key><integer>0</integer>
428*67e74705SXin Li // CHECK-NEXT: <key>extended_message</key>
429*67e74705SXin Li // CHECK-NEXT: <string>Assuming 'p' is equal to null</string>
430*67e74705SXin Li // CHECK-NEXT: <key>message</key>
431*67e74705SXin Li // CHECK-NEXT: <string>Assuming 'p' is equal to null</string>
432*67e74705SXin Li // CHECK-NEXT: </dict>
433*67e74705SXin Li // CHECK-NEXT: <dict>
434*67e74705SXin Li // CHECK-NEXT: <key>kind</key><string>control</string>
435*67e74705SXin Li // CHECK-NEXT: <key>edges</key>
436*67e74705SXin Li // CHECK-NEXT: <array>
437*67e74705SXin Li // CHECK-NEXT: <dict>
438*67e74705SXin Li // CHECK-NEXT: <key>start</key>
439*67e74705SXin Li // CHECK-NEXT: <array>
440*67e74705SXin Li // CHECK-NEXT: <dict>
441*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>28</integer>
442*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>24</integer>
443*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
444*67e74705SXin Li // CHECK-NEXT: </dict>
445*67e74705SXin Li // CHECK-NEXT: <dict>
446*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>28</integer>
447*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>33</integer>
448*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
449*67e74705SXin Li // CHECK-NEXT: </dict>
450*67e74705SXin Li // CHECK-NEXT: </array>
451*67e74705SXin Li // CHECK-NEXT: <key>end</key>
452*67e74705SXin Li // CHECK-NEXT: <array>
453*67e74705SXin Li // CHECK-NEXT: <dict>
454*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>28</integer>
455*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
456*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
457*67e74705SXin Li // CHECK-NEXT: </dict>
458*67e74705SXin Li // CHECK-NEXT: <dict>
459*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>28</integer>
460*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>22</integer>
461*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
462*67e74705SXin Li // CHECK-NEXT: </dict>
463*67e74705SXin Li // CHECK-NEXT: </array>
464*67e74705SXin Li // CHECK-NEXT: </dict>
465*67e74705SXin Li // CHECK-NEXT: </array>
466*67e74705SXin Li // CHECK-NEXT: </dict>
467*67e74705SXin Li // CHECK-NEXT: <dict>
468*67e74705SXin Li // CHECK-NEXT: <key>kind</key><string>control</string>
469*67e74705SXin Li // CHECK-NEXT: <key>edges</key>
470*67e74705SXin Li // CHECK-NEXT: <array>
471*67e74705SXin Li // CHECK-NEXT: <dict>
472*67e74705SXin Li // CHECK-NEXT: <key>start</key>
473*67e74705SXin Li // CHECK-NEXT: <array>
474*67e74705SXin Li // CHECK-NEXT: <dict>
475*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>28</integer>
476*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
477*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
478*67e74705SXin Li // CHECK-NEXT: </dict>
479*67e74705SXin Li // CHECK-NEXT: <dict>
480*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>28</integer>
481*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>22</integer>
482*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
483*67e74705SXin Li // CHECK-NEXT: </dict>
484*67e74705SXin Li // CHECK-NEXT: </array>
485*67e74705SXin Li // CHECK-NEXT: <key>end</key>
486*67e74705SXin Li // CHECK-NEXT: <array>
487*67e74705SXin Li // CHECK-NEXT: <dict>
488*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>30</integer>
489*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
490*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
491*67e74705SXin Li // CHECK-NEXT: </dict>
492*67e74705SXin Li // CHECK-NEXT: <dict>
493*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>30</integer>
494*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>8</integer>
495*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
496*67e74705SXin Li // CHECK-NEXT: </dict>
497*67e74705SXin Li // CHECK-NEXT: </array>
498*67e74705SXin Li // CHECK-NEXT: </dict>
499*67e74705SXin Li // CHECK-NEXT: </array>
500*67e74705SXin Li // CHECK-NEXT: </dict>
501*67e74705SXin Li // CHECK-NEXT: <dict>
502*67e74705SXin Li // CHECK-NEXT: <key>kind</key><string>control</string>
503*67e74705SXin Li // CHECK-NEXT: <key>edges</key>
504*67e74705SXin Li // CHECK-NEXT: <array>
505*67e74705SXin Li // CHECK-NEXT: <dict>
506*67e74705SXin Li // CHECK-NEXT: <key>start</key>
507*67e74705SXin Li // CHECK-NEXT: <array>
508*67e74705SXin Li // CHECK-NEXT: <dict>
509*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>30</integer>
510*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
511*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
512*67e74705SXin Li // CHECK-NEXT: </dict>
513*67e74705SXin Li // CHECK-NEXT: <dict>
514*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>30</integer>
515*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>8</integer>
516*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
517*67e74705SXin Li // CHECK-NEXT: </dict>
518*67e74705SXin Li // CHECK-NEXT: </array>
519*67e74705SXin Li // CHECK-NEXT: <key>end</key>
520*67e74705SXin Li // CHECK-NEXT: <array>
521*67e74705SXin Li // CHECK-NEXT: <dict>
522*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>30</integer>
523*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>10</integer>
524*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
525*67e74705SXin Li // CHECK-NEXT: </dict>
526*67e74705SXin Li // CHECK-NEXT: <dict>
527*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>30</integer>
528*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>10</integer>
529*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
530*67e74705SXin Li // CHECK-NEXT: </dict>
531*67e74705SXin Li // CHECK-NEXT: </array>
532*67e74705SXin Li // CHECK-NEXT: </dict>
533*67e74705SXin Li // CHECK-NEXT: </array>
534*67e74705SXin Li // CHECK-NEXT: </dict>
535*67e74705SXin Li // CHECK-NEXT: <dict>
536*67e74705SXin Li // CHECK-NEXT: <key>kind</key><string>event</string>
537*67e74705SXin Li // CHECK-NEXT: <key>location</key>
538*67e74705SXin Li // CHECK-NEXT: <dict>
539*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>30</integer>
540*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>10</integer>
541*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
542*67e74705SXin Li // CHECK-NEXT: </dict>
543*67e74705SXin Li // CHECK-NEXT: <key>ranges</key>
544*67e74705SXin Li // CHECK-NEXT: <array>
545*67e74705SXin Li // CHECK-NEXT: <array>
546*67e74705SXin Li // CHECK-NEXT: <dict>
547*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>30</integer>
548*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>11</integer>
549*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
550*67e74705SXin Li // CHECK-NEXT: </dict>
551*67e74705SXin Li // CHECK-NEXT: <dict>
552*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>30</integer>
553*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>11</integer>
554*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
555*67e74705SXin Li // CHECK-NEXT: </dict>
556*67e74705SXin Li // CHECK-NEXT: </array>
557*67e74705SXin Li // CHECK-NEXT: </array>
558*67e74705SXin Li // CHECK-NEXT: <key>depth</key><integer>0</integer>
559*67e74705SXin Li // CHECK-NEXT: <key>extended_message</key>
560*67e74705SXin Li // CHECK-NEXT: <string>Dereference of null pointer (loaded from variable 'p')</string>
561*67e74705SXin Li // CHECK-NEXT: <key>message</key>
562*67e74705SXin Li // CHECK-NEXT: <string>Dereference of null pointer (loaded from variable 'p')</string>
563*67e74705SXin Li // CHECK-NEXT: </dict>
564*67e74705SXin Li // CHECK-NEXT: </array>
565*67e74705SXin Li // CHECK-NEXT: <key>description</key><string>Dereference of null pointer (loaded from variable 'p')</string>
566*67e74705SXin Li // CHECK-NEXT: <key>category</key><string>Logic error</string>
567*67e74705SXin Li // CHECK-NEXT: <key>type</key><string>Dereference of null pointer</string>
568*67e74705SXin Li // CHECK-NEXT: <key>check_name</key><string>core.NullDereference</string>
569*67e74705SXin Li // CHECK-NEXT: <!-- This hash is experimental and going to change! -->
570*67e74705SXin Li // CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>3570104919aab3f953357f8c87b68bd7</string>
571*67e74705SXin Li // CHECK-NEXT: <key>issue_context_kind</key><string>function</string>
572*67e74705SXin Li // CHECK-NEXT: <key>issue_context</key><string>macroInExpression</string>
573*67e74705SXin Li // CHECK-NEXT: <key>issue_hash_function_offset</key><string>4</string>
574*67e74705SXin Li // CHECK-NEXT: <key>location</key>
575*67e74705SXin Li // CHECK-NEXT: <dict>
576*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>30</integer>
577*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>10</integer>
578*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
579*67e74705SXin Li // CHECK-NEXT: </dict>
580*67e74705SXin Li // CHECK-NEXT: </dict>
581*67e74705SXin Li // CHECK-NEXT: <dict>
582*67e74705SXin Li // CHECK-NEXT: <key>path</key>
583*67e74705SXin Li // CHECK-NEXT: <array>
584*67e74705SXin Li // CHECK-NEXT: <dict>
585*67e74705SXin Li // CHECK-NEXT: <key>kind</key><string>control</string>
586*67e74705SXin Li // CHECK-NEXT: <key>edges</key>
587*67e74705SXin Li // CHECK-NEXT: <array>
588*67e74705SXin Li // CHECK-NEXT: <dict>
589*67e74705SXin Li // CHECK-NEXT: <key>start</key>
590*67e74705SXin Li // CHECK-NEXT: <array>
591*67e74705SXin Li // CHECK-NEXT: <dict>
592*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>35</integer>
593*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
594*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
595*67e74705SXin Li // CHECK-NEXT: </dict>
596*67e74705SXin Li // CHECK-NEXT: <dict>
597*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>35</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: </array>
602*67e74705SXin Li // CHECK-NEXT: <key>end</key>
603*67e74705SXin Li // CHECK-NEXT: <array>
604*67e74705SXin Li // CHECK-NEXT: <dict>
605*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>36</integer>
606*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
607*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
608*67e74705SXin Li // CHECK-NEXT: </dict>
609*67e74705SXin Li // CHECK-NEXT: <dict>
610*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>36</integer>
611*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>4</integer>
612*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
613*67e74705SXin Li // CHECK-NEXT: </dict>
614*67e74705SXin Li // CHECK-NEXT: </array>
615*67e74705SXin Li // CHECK-NEXT: </dict>
616*67e74705SXin Li // CHECK-NEXT: </array>
617*67e74705SXin Li // CHECK-NEXT: </dict>
618*67e74705SXin Li // CHECK-NEXT: <dict>
619*67e74705SXin Li // CHECK-NEXT: <key>kind</key><string>control</string>
620*67e74705SXin Li // CHECK-NEXT: <key>edges</key>
621*67e74705SXin Li // CHECK-NEXT: <array>
622*67e74705SXin Li // CHECK-NEXT: <dict>
623*67e74705SXin Li // CHECK-NEXT: <key>start</key>
624*67e74705SXin Li // CHECK-NEXT: <array>
625*67e74705SXin Li // CHECK-NEXT: <dict>
626*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>36</integer>
627*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
628*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
629*67e74705SXin Li // CHECK-NEXT: </dict>
630*67e74705SXin Li // CHECK-NEXT: <dict>
631*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>36</integer>
632*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>4</integer>
633*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
634*67e74705SXin Li // CHECK-NEXT: </dict>
635*67e74705SXin Li // CHECK-NEXT: </array>
636*67e74705SXin Li // CHECK-NEXT: <key>end</key>
637*67e74705SXin Li // CHECK-NEXT: <array>
638*67e74705SXin Li // CHECK-NEXT: <dict>
639*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>37</integer>
640*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>5</integer>
641*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
642*67e74705SXin Li // CHECK-NEXT: </dict>
643*67e74705SXin Li // CHECK-NEXT: <dict>
644*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>37</integer>
645*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>6</integer>
646*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
647*67e74705SXin Li // CHECK-NEXT: </dict>
648*67e74705SXin Li // CHECK-NEXT: </array>
649*67e74705SXin Li // CHECK-NEXT: </dict>
650*67e74705SXin Li // CHECK-NEXT: </array>
651*67e74705SXin Li // CHECK-NEXT: </dict>
652*67e74705SXin Li // CHECK-NEXT: <dict>
653*67e74705SXin Li // CHECK-NEXT: <key>kind</key><string>control</string>
654*67e74705SXin Li // CHECK-NEXT: <key>edges</key>
655*67e74705SXin Li // CHECK-NEXT: <array>
656*67e74705SXin Li // CHECK-NEXT: <dict>
657*67e74705SXin Li // CHECK-NEXT: <key>start</key>
658*67e74705SXin Li // CHECK-NEXT: <array>
659*67e74705SXin Li // CHECK-NEXT: <dict>
660*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>37</integer>
661*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>5</integer>
662*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
663*67e74705SXin Li // CHECK-NEXT: </dict>
664*67e74705SXin Li // CHECK-NEXT: <dict>
665*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>37</integer>
666*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>6</integer>
667*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
668*67e74705SXin Li // CHECK-NEXT: </dict>
669*67e74705SXin Li // CHECK-NEXT: </array>
670*67e74705SXin Li // CHECK-NEXT: <key>end</key>
671*67e74705SXin Li // CHECK-NEXT: <array>
672*67e74705SXin Li // CHECK-NEXT: <dict>
673*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>37</integer>
674*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>9</integer>
675*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
676*67e74705SXin Li // CHECK-NEXT: </dict>
677*67e74705SXin Li // CHECK-NEXT: <dict>
678*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>37</integer>
679*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>9</integer>
680*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
681*67e74705SXin Li // CHECK-NEXT: </dict>
682*67e74705SXin Li // CHECK-NEXT: </array>
683*67e74705SXin Li // CHECK-NEXT: </dict>
684*67e74705SXin Li // CHECK-NEXT: </array>
685*67e74705SXin Li // CHECK-NEXT: </dict>
686*67e74705SXin Li // CHECK-NEXT: <dict>
687*67e74705SXin Li // CHECK-NEXT: <key>kind</key><string>event</string>
688*67e74705SXin Li // CHECK-NEXT: <key>location</key>
689*67e74705SXin Li // CHECK-NEXT: <dict>
690*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>37</integer>
691*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>9</integer>
692*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
693*67e74705SXin Li // CHECK-NEXT: </dict>
694*67e74705SXin Li // CHECK-NEXT: <key>ranges</key>
695*67e74705SXin Li // CHECK-NEXT: <array>
696*67e74705SXin Li // CHECK-NEXT: <array>
697*67e74705SXin Li // CHECK-NEXT: <dict>
698*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>37</integer>
699*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>9</integer>
700*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
701*67e74705SXin Li // CHECK-NEXT: </dict>
702*67e74705SXin Li // CHECK-NEXT: <dict>
703*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>37</integer>
704*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>9</integer>
705*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
706*67e74705SXin Li // CHECK-NEXT: </dict>
707*67e74705SXin Li // CHECK-NEXT: </array>
708*67e74705SXin Li // CHECK-NEXT: </array>
709*67e74705SXin Li // CHECK-NEXT: <key>depth</key><integer>0</integer>
710*67e74705SXin Li // CHECK-NEXT: <key>extended_message</key>
711*67e74705SXin Li // CHECK-NEXT: <string>Assuming 'p' is null</string>
712*67e74705SXin Li // CHECK-NEXT: <key>message</key>
713*67e74705SXin Li // CHECK-NEXT: <string>Assuming 'p' is null</string>
714*67e74705SXin Li // CHECK-NEXT: </dict>
715*67e74705SXin Li // CHECK-NEXT: <dict>
716*67e74705SXin Li // CHECK-NEXT: <key>kind</key><string>control</string>
717*67e74705SXin Li // CHECK-NEXT: <key>edges</key>
718*67e74705SXin Li // CHECK-NEXT: <array>
719*67e74705SXin Li // CHECK-NEXT: <dict>
720*67e74705SXin Li // CHECK-NEXT: <key>start</key>
721*67e74705SXin Li // CHECK-NEXT: <array>
722*67e74705SXin Li // CHECK-NEXT: <dict>
723*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>37</integer>
724*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>9</integer>
725*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
726*67e74705SXin Li // CHECK-NEXT: </dict>
727*67e74705SXin Li // CHECK-NEXT: <dict>
728*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>37</integer>
729*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>9</integer>
730*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
731*67e74705SXin Li // CHECK-NEXT: </dict>
732*67e74705SXin Li // CHECK-NEXT: </array>
733*67e74705SXin Li // CHECK-NEXT: <key>end</key>
734*67e74705SXin Li // CHECK-NEXT: <array>
735*67e74705SXin Li // CHECK-NEXT: <dict>
736*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>39</integer>
737*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
738*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
739*67e74705SXin Li // CHECK-NEXT: </dict>
740*67e74705SXin Li // CHECK-NEXT: <dict>
741*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>39</integer>
742*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>8</integer>
743*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
744*67e74705SXin Li // CHECK-NEXT: </dict>
745*67e74705SXin Li // CHECK-NEXT: </array>
746*67e74705SXin Li // CHECK-NEXT: </dict>
747*67e74705SXin Li // CHECK-NEXT: </array>
748*67e74705SXin Li // CHECK-NEXT: </dict>
749*67e74705SXin Li // CHECK-NEXT: <dict>
750*67e74705SXin Li // CHECK-NEXT: <key>kind</key><string>control</string>
751*67e74705SXin Li // CHECK-NEXT: <key>edges</key>
752*67e74705SXin Li // CHECK-NEXT: <array>
753*67e74705SXin Li // CHECK-NEXT: <dict>
754*67e74705SXin Li // CHECK-NEXT: <key>start</key>
755*67e74705SXin Li // CHECK-NEXT: <array>
756*67e74705SXin Li // CHECK-NEXT: <dict>
757*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>39</integer>
758*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
759*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
760*67e74705SXin Li // CHECK-NEXT: </dict>
761*67e74705SXin Li // CHECK-NEXT: <dict>
762*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>39</integer>
763*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>8</integer>
764*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
765*67e74705SXin Li // CHECK-NEXT: </dict>
766*67e74705SXin Li // CHECK-NEXT: </array>
767*67e74705SXin Li // CHECK-NEXT: <key>end</key>
768*67e74705SXin Li // CHECK-NEXT: <array>
769*67e74705SXin Li // CHECK-NEXT: <dict>
770*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>39</integer>
771*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>10</integer>
772*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
773*67e74705SXin Li // CHECK-NEXT: </dict>
774*67e74705SXin Li // CHECK-NEXT: <dict>
775*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>39</integer>
776*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>10</integer>
777*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
778*67e74705SXin Li // CHECK-NEXT: </dict>
779*67e74705SXin Li // CHECK-NEXT: </array>
780*67e74705SXin Li // CHECK-NEXT: </dict>
781*67e74705SXin Li // CHECK-NEXT: </array>
782*67e74705SXin Li // CHECK-NEXT: </dict>
783*67e74705SXin Li // CHECK-NEXT: <dict>
784*67e74705SXin Li // CHECK-NEXT: <key>kind</key><string>event</string>
785*67e74705SXin Li // CHECK-NEXT: <key>location</key>
786*67e74705SXin Li // CHECK-NEXT: <dict>
787*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>39</integer>
788*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>10</integer>
789*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
790*67e74705SXin Li // CHECK-NEXT: </dict>
791*67e74705SXin Li // CHECK-NEXT: <key>ranges</key>
792*67e74705SXin Li // CHECK-NEXT: <array>
793*67e74705SXin Li // CHECK-NEXT: <array>
794*67e74705SXin Li // CHECK-NEXT: <dict>
795*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>39</integer>
796*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>11</integer>
797*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
798*67e74705SXin Li // CHECK-NEXT: </dict>
799*67e74705SXin Li // CHECK-NEXT: <dict>
800*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>39</integer>
801*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>11</integer>
802*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
803*67e74705SXin Li // CHECK-NEXT: </dict>
804*67e74705SXin Li // CHECK-NEXT: </array>
805*67e74705SXin Li // CHECK-NEXT: </array>
806*67e74705SXin Li // CHECK-NEXT: <key>depth</key><integer>0</integer>
807*67e74705SXin Li // CHECK-NEXT: <key>extended_message</key>
808*67e74705SXin Li // CHECK-NEXT: <string>Dereference of null pointer (loaded from variable 'p')</string>
809*67e74705SXin Li // CHECK-NEXT: <key>message</key>
810*67e74705SXin Li // CHECK-NEXT: <string>Dereference of null pointer (loaded from variable 'p')</string>
811*67e74705SXin Li // CHECK-NEXT: </dict>
812*67e74705SXin Li // CHECK-NEXT: </array>
813*67e74705SXin Li // CHECK-NEXT: <key>description</key><string>Dereference of null pointer (loaded from variable 'p')</string>
814*67e74705SXin Li // CHECK-NEXT: <key>category</key><string>Logic error</string>
815*67e74705SXin Li // CHECK-NEXT: <key>type</key><string>Dereference of null pointer</string>
816*67e74705SXin Li // CHECK-NEXT: <key>check_name</key><string>core.NullDereference</string>
817*67e74705SXin Li // CHECK-NEXT: <!-- This hash is experimental and going to change! -->
818*67e74705SXin Li // CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>deff163b13f3fd860bc332498b0dbc59</string>
819*67e74705SXin Li // CHECK-NEXT: <key>issue_context_kind</key><string>function</string>
820*67e74705SXin Li // CHECK-NEXT: <key>issue_context</key><string>macroInExpressionNoNote</string>
821*67e74705SXin Li // CHECK-NEXT: <key>issue_hash_function_offset</key><string>5</string>
822*67e74705SXin Li // CHECK-NEXT: <key>location</key>
823*67e74705SXin Li // CHECK-NEXT: <dict>
824*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>39</integer>
825*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>10</integer>
826*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
827*67e74705SXin Li // CHECK-NEXT: </dict>
828*67e74705SXin Li // CHECK-NEXT: </dict>
829*67e74705SXin Li // CHECK-NEXT: <dict>
830*67e74705SXin Li // CHECK-NEXT: <key>path</key>
831*67e74705SXin Li // CHECK-NEXT: <array>
832*67e74705SXin Li // CHECK-NEXT: <dict>
833*67e74705SXin Li // CHECK-NEXT: <key>kind</key><string>control</string>
834*67e74705SXin Li // CHECK-NEXT: <key>edges</key>
835*67e74705SXin Li // CHECK-NEXT: <array>
836*67e74705SXin Li // CHECK-NEXT: <dict>
837*67e74705SXin Li // CHECK-NEXT: <key>start</key>
838*67e74705SXin Li // CHECK-NEXT: <array>
839*67e74705SXin Li // CHECK-NEXT: <dict>
840*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>44</integer>
841*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
842*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
843*67e74705SXin Li // CHECK-NEXT: </dict>
844*67e74705SXin Li // CHECK-NEXT: <dict>
845*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>44</integer>
846*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
847*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
848*67e74705SXin Li // CHECK-NEXT: </dict>
849*67e74705SXin Li // CHECK-NEXT: </array>
850*67e74705SXin Li // CHECK-NEXT: <key>end</key>
851*67e74705SXin Li // CHECK-NEXT: <array>
852*67e74705SXin Li // CHECK-NEXT: <dict>
853*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>45</integer>
854*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
855*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
856*67e74705SXin Li // CHECK-NEXT: </dict>
857*67e74705SXin Li // CHECK-NEXT: <dict>
858*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>45</integer>
859*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>4</integer>
860*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
861*67e74705SXin Li // CHECK-NEXT: </dict>
862*67e74705SXin Li // CHECK-NEXT: </array>
863*67e74705SXin Li // CHECK-NEXT: </dict>
864*67e74705SXin Li // CHECK-NEXT: </array>
865*67e74705SXin Li // CHECK-NEXT: </dict>
866*67e74705SXin Li // CHECK-NEXT: <dict>
867*67e74705SXin Li // CHECK-NEXT: <key>kind</key><string>control</string>
868*67e74705SXin Li // CHECK-NEXT: <key>edges</key>
869*67e74705SXin Li // CHECK-NEXT: <array>
870*67e74705SXin Li // CHECK-NEXT: <dict>
871*67e74705SXin Li // CHECK-NEXT: <key>start</key>
872*67e74705SXin Li // CHECK-NEXT: <array>
873*67e74705SXin Li // CHECK-NEXT: <dict>
874*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>45</integer>
875*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
876*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
877*67e74705SXin Li // CHECK-NEXT: </dict>
878*67e74705SXin Li // CHECK-NEXT: <dict>
879*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>45</integer>
880*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>4</integer>
881*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
882*67e74705SXin Li // CHECK-NEXT: </dict>
883*67e74705SXin Li // CHECK-NEXT: </array>
884*67e74705SXin Li // CHECK-NEXT: <key>end</key>
885*67e74705SXin Li // CHECK-NEXT: <array>
886*67e74705SXin Li // CHECK-NEXT: <dict>
887*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>45</integer>
888*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>7</integer>
889*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
890*67e74705SXin Li // CHECK-NEXT: </dict>
891*67e74705SXin Li // CHECK-NEXT: <dict>
892*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>45</integer>
893*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>18</integer>
894*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
895*67e74705SXin Li // CHECK-NEXT: </dict>
896*67e74705SXin Li // CHECK-NEXT: </array>
897*67e74705SXin Li // CHECK-NEXT: </dict>
898*67e74705SXin Li // CHECK-NEXT: </array>
899*67e74705SXin Li // CHECK-NEXT: </dict>
900*67e74705SXin Li // CHECK-NEXT: <dict>
901*67e74705SXin Li // CHECK-NEXT: <key>kind</key><string>event</string>
902*67e74705SXin Li // CHECK-NEXT: <key>location</key>
903*67e74705SXin Li // CHECK-NEXT: <dict>
904*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>45</integer>
905*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>7</integer>
906*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
907*67e74705SXin Li // CHECK-NEXT: </dict>
908*67e74705SXin Li // CHECK-NEXT: <key>ranges</key>
909*67e74705SXin Li // CHECK-NEXT: <array>
910*67e74705SXin Li // CHECK-NEXT: <array>
911*67e74705SXin Li // CHECK-NEXT: <dict>
912*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>45</integer>
913*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>7</integer>
914*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
915*67e74705SXin Li // CHECK-NEXT: </dict>
916*67e74705SXin Li // CHECK-NEXT: <dict>
917*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>45</integer>
918*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>21</integer>
919*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
920*67e74705SXin Li // CHECK-NEXT: </dict>
921*67e74705SXin Li // CHECK-NEXT: </array>
922*67e74705SXin Li // CHECK-NEXT: </array>
923*67e74705SXin Li // CHECK-NEXT: <key>depth</key><integer>0</integer>
924*67e74705SXin Li // CHECK-NEXT: <key>extended_message</key>
925*67e74705SXin Li // CHECK-NEXT: <string>Assuming 'p' is equal to null</string>
926*67e74705SXin Li // CHECK-NEXT: <key>message</key>
927*67e74705SXin Li // CHECK-NEXT: <string>Assuming 'p' is equal to null</string>
928*67e74705SXin Li // CHECK-NEXT: </dict>
929*67e74705SXin Li // CHECK-NEXT: <dict>
930*67e74705SXin Li // CHECK-NEXT: <key>kind</key><string>control</string>
931*67e74705SXin Li // CHECK-NEXT: <key>edges</key>
932*67e74705SXin Li // CHECK-NEXT: <array>
933*67e74705SXin Li // CHECK-NEXT: <dict>
934*67e74705SXin Li // CHECK-NEXT: <key>start</key>
935*67e74705SXin Li // CHECK-NEXT: <array>
936*67e74705SXin Li // CHECK-NEXT: <dict>
937*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>45</integer>
938*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>7</integer>
939*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
940*67e74705SXin Li // CHECK-NEXT: </dict>
941*67e74705SXin Li // CHECK-NEXT: <dict>
942*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>45</integer>
943*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>18</integer>
944*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
945*67e74705SXin Li // CHECK-NEXT: </dict>
946*67e74705SXin Li // CHECK-NEXT: </array>
947*67e74705SXin Li // CHECK-NEXT: <key>end</key>
948*67e74705SXin Li // CHECK-NEXT: <array>
949*67e74705SXin Li // CHECK-NEXT: <dict>
950*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>47</integer>
951*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
952*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
953*67e74705SXin Li // CHECK-NEXT: </dict>
954*67e74705SXin Li // CHECK-NEXT: <dict>
955*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>47</integer>
956*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>8</integer>
957*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
958*67e74705SXin Li // CHECK-NEXT: </dict>
959*67e74705SXin Li // CHECK-NEXT: </array>
960*67e74705SXin Li // CHECK-NEXT: </dict>
961*67e74705SXin Li // CHECK-NEXT: </array>
962*67e74705SXin Li // CHECK-NEXT: </dict>
963*67e74705SXin Li // CHECK-NEXT: <dict>
964*67e74705SXin Li // CHECK-NEXT: <key>kind</key><string>control</string>
965*67e74705SXin Li // CHECK-NEXT: <key>edges</key>
966*67e74705SXin Li // CHECK-NEXT: <array>
967*67e74705SXin Li // CHECK-NEXT: <dict>
968*67e74705SXin Li // CHECK-NEXT: <key>start</key>
969*67e74705SXin Li // CHECK-NEXT: <array>
970*67e74705SXin Li // CHECK-NEXT: <dict>
971*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>47</integer>
972*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
973*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
974*67e74705SXin Li // CHECK-NEXT: </dict>
975*67e74705SXin Li // CHECK-NEXT: <dict>
976*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>47</integer>
977*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>8</integer>
978*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
979*67e74705SXin Li // CHECK-NEXT: </dict>
980*67e74705SXin Li // CHECK-NEXT: </array>
981*67e74705SXin Li // CHECK-NEXT: <key>end</key>
982*67e74705SXin Li // CHECK-NEXT: <array>
983*67e74705SXin Li // CHECK-NEXT: <dict>
984*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>47</integer>
985*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>10</integer>
986*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
987*67e74705SXin Li // CHECK-NEXT: </dict>
988*67e74705SXin Li // CHECK-NEXT: <dict>
989*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>47</integer>
990*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>10</integer>
991*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
992*67e74705SXin Li // CHECK-NEXT: </dict>
993*67e74705SXin Li // CHECK-NEXT: </array>
994*67e74705SXin Li // CHECK-NEXT: </dict>
995*67e74705SXin Li // CHECK-NEXT: </array>
996*67e74705SXin Li // CHECK-NEXT: </dict>
997*67e74705SXin Li // CHECK-NEXT: <dict>
998*67e74705SXin Li // CHECK-NEXT: <key>kind</key><string>event</string>
999*67e74705SXin Li // CHECK-NEXT: <key>location</key>
1000*67e74705SXin Li // CHECK-NEXT: <dict>
1001*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>47</integer>
1002*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>10</integer>
1003*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1004*67e74705SXin Li // CHECK-NEXT: </dict>
1005*67e74705SXin Li // CHECK-NEXT: <key>ranges</key>
1006*67e74705SXin Li // CHECK-NEXT: <array>
1007*67e74705SXin Li // CHECK-NEXT: <array>
1008*67e74705SXin Li // CHECK-NEXT: <dict>
1009*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>47</integer>
1010*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>11</integer>
1011*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1012*67e74705SXin Li // CHECK-NEXT: </dict>
1013*67e74705SXin Li // CHECK-NEXT: <dict>
1014*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>47</integer>
1015*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>11</integer>
1016*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1017*67e74705SXin Li // CHECK-NEXT: </dict>
1018*67e74705SXin Li // CHECK-NEXT: </array>
1019*67e74705SXin Li // CHECK-NEXT: </array>
1020*67e74705SXin Li // CHECK-NEXT: <key>depth</key><integer>0</integer>
1021*67e74705SXin Li // CHECK-NEXT: <key>extended_message</key>
1022*67e74705SXin Li // CHECK-NEXT: <string>Dereference of null pointer (loaded from variable 'p')</string>
1023*67e74705SXin Li // CHECK-NEXT: <key>message</key>
1024*67e74705SXin Li // CHECK-NEXT: <string>Dereference of null pointer (loaded from variable 'p')</string>
1025*67e74705SXin Li // CHECK-NEXT: </dict>
1026*67e74705SXin Li // CHECK-NEXT: </array>
1027*67e74705SXin Li // CHECK-NEXT: <key>description</key><string>Dereference of null pointer (loaded from variable 'p')</string>
1028*67e74705SXin Li // CHECK-NEXT: <key>category</key><string>Logic error</string>
1029*67e74705SXin Li // CHECK-NEXT: <key>type</key><string>Dereference of null pointer</string>
1030*67e74705SXin Li // CHECK-NEXT: <key>check_name</key><string>core.NullDereference</string>
1031*67e74705SXin Li // CHECK-NEXT: <!-- This hash is experimental and going to change! -->
1032*67e74705SXin Li // CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>b67b58d85375752578e947b77c6aa70c</string>
1033*67e74705SXin Li // CHECK-NEXT: <key>issue_context_kind</key><string>function</string>
1034*67e74705SXin Li // CHECK-NEXT: <key>issue_context</key><string>macroWithArgInExpression</string>
1035*67e74705SXin Li // CHECK-NEXT: <key>issue_hash_function_offset</key><string>4</string>
1036*67e74705SXin Li // CHECK-NEXT: <key>location</key>
1037*67e74705SXin Li // CHECK-NEXT: <dict>
1038*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>47</integer>
1039*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>10</integer>
1040*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1041*67e74705SXin Li // CHECK-NEXT: </dict>
1042*67e74705SXin Li // CHECK-NEXT: </dict>
1043*67e74705SXin Li // CHECK-NEXT: <dict>
1044*67e74705SXin Li // CHECK-NEXT: <key>path</key>
1045*67e74705SXin Li // CHECK-NEXT: <array>
1046*67e74705SXin Li // CHECK-NEXT: <dict>
1047*67e74705SXin Li // CHECK-NEXT: <key>kind</key><string>control</string>
1048*67e74705SXin Li // CHECK-NEXT: <key>edges</key>
1049*67e74705SXin Li // CHECK-NEXT: <array>
1050*67e74705SXin Li // CHECK-NEXT: <dict>
1051*67e74705SXin Li // CHECK-NEXT: <key>start</key>
1052*67e74705SXin Li // CHECK-NEXT: <array>
1053*67e74705SXin Li // CHECK-NEXT: <dict>
1054*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>55</integer>
1055*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
1056*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1057*67e74705SXin Li // CHECK-NEXT: </dict>
1058*67e74705SXin Li // CHECK-NEXT: <dict>
1059*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>55</integer>
1060*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
1061*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1062*67e74705SXin Li // CHECK-NEXT: </dict>
1063*67e74705SXin Li // CHECK-NEXT: </array>
1064*67e74705SXin Li // CHECK-NEXT: <key>end</key>
1065*67e74705SXin Li // CHECK-NEXT: <array>
1066*67e74705SXin Li // CHECK-NEXT: <dict>
1067*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>56</integer>
1068*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
1069*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1070*67e74705SXin Li // CHECK-NEXT: </dict>
1071*67e74705SXin Li // CHECK-NEXT: <dict>
1072*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>56</integer>
1073*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>25</integer>
1074*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1075*67e74705SXin Li // CHECK-NEXT: </dict>
1076*67e74705SXin Li // CHECK-NEXT: </array>
1077*67e74705SXin Li // CHECK-NEXT: </dict>
1078*67e74705SXin Li // CHECK-NEXT: </array>
1079*67e74705SXin Li // CHECK-NEXT: </dict>
1080*67e74705SXin Li // CHECK-NEXT: <dict>
1081*67e74705SXin Li // CHECK-NEXT: <key>kind</key><string>event</string>
1082*67e74705SXin Li // CHECK-NEXT: <key>location</key>
1083*67e74705SXin Li // CHECK-NEXT: <dict>
1084*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>56</integer>
1085*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
1086*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1087*67e74705SXin Li // CHECK-NEXT: </dict>
1088*67e74705SXin Li // CHECK-NEXT: <key>ranges</key>
1089*67e74705SXin Li // CHECK-NEXT: <array>
1090*67e74705SXin Li // CHECK-NEXT: <array>
1091*67e74705SXin Li // CHECK-NEXT: <dict>
1092*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>56</integer>
1093*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
1094*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1095*67e74705SXin Li // CHECK-NEXT: </dict>
1096*67e74705SXin Li // CHECK-NEXT: <dict>
1097*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>56</integer>
1098*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>25</integer>
1099*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1100*67e74705SXin Li // CHECK-NEXT: </dict>
1101*67e74705SXin Li // CHECK-NEXT: </array>
1102*67e74705SXin Li // CHECK-NEXT: </array>
1103*67e74705SXin Li // CHECK-NEXT: <key>depth</key><integer>0</integer>
1104*67e74705SXin Li // CHECK-NEXT: <key>extended_message</key>
1105*67e74705SXin Li // CHECK-NEXT: <string>Assuming 'p' is null</string>
1106*67e74705SXin Li // CHECK-NEXT: <key>message</key>
1107*67e74705SXin Li // CHECK-NEXT: <string>Assuming 'p' is null</string>
1108*67e74705SXin Li // CHECK-NEXT: </dict>
1109*67e74705SXin Li // CHECK-NEXT: <dict>
1110*67e74705SXin Li // CHECK-NEXT: <key>kind</key><string>control</string>
1111*67e74705SXin Li // CHECK-NEXT: <key>edges</key>
1112*67e74705SXin Li // CHECK-NEXT: <array>
1113*67e74705SXin Li // CHECK-NEXT: <dict>
1114*67e74705SXin Li // CHECK-NEXT: <key>start</key>
1115*67e74705SXin Li // CHECK-NEXT: <array>
1116*67e74705SXin Li // CHECK-NEXT: <dict>
1117*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>56</integer>
1118*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
1119*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1120*67e74705SXin Li // CHECK-NEXT: </dict>
1121*67e74705SXin Li // CHECK-NEXT: <dict>
1122*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>56</integer>
1123*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>25</integer>
1124*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1125*67e74705SXin Li // CHECK-NEXT: </dict>
1126*67e74705SXin Li // CHECK-NEXT: </array>
1127*67e74705SXin Li // CHECK-NEXT: <key>end</key>
1128*67e74705SXin Li // CHECK-NEXT: <array>
1129*67e74705SXin Li // CHECK-NEXT: <dict>
1130*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>56</integer>
1131*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
1132*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1133*67e74705SXin Li // CHECK-NEXT: </dict>
1134*67e74705SXin Li // CHECK-NEXT: <dict>
1135*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>56</integer>
1136*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>25</integer>
1137*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1138*67e74705SXin Li // CHECK-NEXT: </dict>
1139*67e74705SXin Li // CHECK-NEXT: </array>
1140*67e74705SXin Li // CHECK-NEXT: </dict>
1141*67e74705SXin Li // CHECK-NEXT: </array>
1142*67e74705SXin Li // CHECK-NEXT: </dict>
1143*67e74705SXin Li // CHECK-NEXT: <dict>
1144*67e74705SXin Li // CHECK-NEXT: <key>kind</key><string>event</string>
1145*67e74705SXin Li // CHECK-NEXT: <key>location</key>
1146*67e74705SXin Li // CHECK-NEXT: <dict>
1147*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>56</integer>
1148*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
1149*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1150*67e74705SXin Li // CHECK-NEXT: </dict>
1151*67e74705SXin Li // CHECK-NEXT: <key>ranges</key>
1152*67e74705SXin Li // CHECK-NEXT: <array>
1153*67e74705SXin Li // CHECK-NEXT: <array>
1154*67e74705SXin Li // CHECK-NEXT: <dict>
1155*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>56</integer>
1156*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
1157*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1158*67e74705SXin Li // CHECK-NEXT: </dict>
1159*67e74705SXin Li // CHECK-NEXT: <dict>
1160*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>56</integer>
1161*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>25</integer>
1162*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1163*67e74705SXin Li // CHECK-NEXT: </dict>
1164*67e74705SXin Li // CHECK-NEXT: </array>
1165*67e74705SXin Li // CHECK-NEXT: </array>
1166*67e74705SXin Li // CHECK-NEXT: <key>depth</key><integer>0</integer>
1167*67e74705SXin Li // CHECK-NEXT: <key>extended_message</key>
1168*67e74705SXin Li // CHECK-NEXT: <string>Dereference of null pointer (loaded from variable 'p')</string>
1169*67e74705SXin Li // CHECK-NEXT: <key>message</key>
1170*67e74705SXin Li // CHECK-NEXT: <string>Dereference of null pointer (loaded from variable 'p')</string>
1171*67e74705SXin Li // CHECK-NEXT: </dict>
1172*67e74705SXin Li // CHECK-NEXT: </array>
1173*67e74705SXin Li // CHECK-NEXT: <key>description</key><string>Dereference of null pointer (loaded from variable 'p')</string>
1174*67e74705SXin Li // CHECK-NEXT: <key>category</key><string>Logic error</string>
1175*67e74705SXin Li // CHECK-NEXT: <key>type</key><string>Dereference of null pointer</string>
1176*67e74705SXin Li // CHECK-NEXT: <key>check_name</key><string>core.NullDereference</string>
1177*67e74705SXin Li // CHECK-NEXT: <!-- This hash is experimental and going to change! -->
1178*67e74705SXin Li // CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>b53410f6c0d3d07e62ce5c6f91a1810a</string>
1179*67e74705SXin Li // CHECK-NEXT: <key>issue_context_kind</key><string>function</string>
1180*67e74705SXin Li // CHECK-NEXT: <key>issue_context</key><string>useMultiNoteMacroWithError</string>
1181*67e74705SXin Li // CHECK-NEXT: <key>issue_hash_function_offset</key><string>2</string>
1182*67e74705SXin Li // CHECK-NEXT: <key>location</key>
1183*67e74705SXin Li // CHECK-NEXT: <dict>
1184*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>56</integer>
1185*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
1186*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1187*67e74705SXin Li // CHECK-NEXT: </dict>
1188*67e74705SXin Li // CHECK-NEXT: </dict>
1189*67e74705SXin Li // CHECK-NEXT: <dict>
1190*67e74705SXin Li // CHECK-NEXT: <key>path</key>
1191*67e74705SXin Li // CHECK-NEXT: <array>
1192*67e74705SXin Li // CHECK-NEXT: <dict>
1193*67e74705SXin Li // CHECK-NEXT: <key>kind</key><string>control</string>
1194*67e74705SXin Li // CHECK-NEXT: <key>edges</key>
1195*67e74705SXin Li // CHECK-NEXT: <array>
1196*67e74705SXin Li // CHECK-NEXT: <dict>
1197*67e74705SXin Li // CHECK-NEXT: <key>start</key>
1198*67e74705SXin Li // CHECK-NEXT: <array>
1199*67e74705SXin Li // CHECK-NEXT: <dict>
1200*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>67</integer>
1201*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
1202*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1203*67e74705SXin Li // CHECK-NEXT: </dict>
1204*67e74705SXin Li // CHECK-NEXT: <dict>
1205*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>67</integer>
1206*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
1207*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1208*67e74705SXin Li // CHECK-NEXT: </dict>
1209*67e74705SXin Li // CHECK-NEXT: </array>
1210*67e74705SXin Li // CHECK-NEXT: <key>end</key>
1211*67e74705SXin Li // CHECK-NEXT: <array>
1212*67e74705SXin Li // CHECK-NEXT: <dict>
1213*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>68</integer>
1214*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
1215*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1216*67e74705SXin Li // CHECK-NEXT: </dict>
1217*67e74705SXin Li // CHECK-NEXT: <dict>
1218*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>68</integer>
1219*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>16</integer>
1220*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1221*67e74705SXin Li // CHECK-NEXT: </dict>
1222*67e74705SXin Li // CHECK-NEXT: </array>
1223*67e74705SXin Li // CHECK-NEXT: </dict>
1224*67e74705SXin Li // CHECK-NEXT: </array>
1225*67e74705SXin Li // CHECK-NEXT: </dict>
1226*67e74705SXin Li // CHECK-NEXT: <dict>
1227*67e74705SXin Li // CHECK-NEXT: <key>kind</key><string>event</string>
1228*67e74705SXin Li // CHECK-NEXT: <key>location</key>
1229*67e74705SXin Li // CHECK-NEXT: <dict>
1230*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>68</integer>
1231*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
1232*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1233*67e74705SXin Li // CHECK-NEXT: </dict>
1234*67e74705SXin Li // CHECK-NEXT: <key>ranges</key>
1235*67e74705SXin Li // CHECK-NEXT: <array>
1236*67e74705SXin Li // CHECK-NEXT: <array>
1237*67e74705SXin Li // CHECK-NEXT: <dict>
1238*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>68</integer>
1239*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
1240*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1241*67e74705SXin Li // CHECK-NEXT: </dict>
1242*67e74705SXin Li // CHECK-NEXT: <dict>
1243*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>68</integer>
1244*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>16</integer>
1245*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1246*67e74705SXin Li // CHECK-NEXT: </dict>
1247*67e74705SXin Li // CHECK-NEXT: </array>
1248*67e74705SXin Li // CHECK-NEXT: </array>
1249*67e74705SXin Li // CHECK-NEXT: <key>depth</key><integer>0</integer>
1250*67e74705SXin Li // CHECK-NEXT: <key>extended_message</key>
1251*67e74705SXin Li // CHECK-NEXT: <string>Assuming 'p' is null</string>
1252*67e74705SXin Li // CHECK-NEXT: <key>message</key>
1253*67e74705SXin Li // CHECK-NEXT: <string>Assuming 'p' is null</string>
1254*67e74705SXin Li // CHECK-NEXT: </dict>
1255*67e74705SXin Li // CHECK-NEXT: <dict>
1256*67e74705SXin Li // CHECK-NEXT: <key>kind</key><string>event</string>
1257*67e74705SXin Li // CHECK-NEXT: <key>location</key>
1258*67e74705SXin Li // CHECK-NEXT: <dict>
1259*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>68</integer>
1260*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
1261*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1262*67e74705SXin Li // CHECK-NEXT: </dict>
1263*67e74705SXin Li // CHECK-NEXT: <key>ranges</key>
1264*67e74705SXin Li // CHECK-NEXT: <array>
1265*67e74705SXin Li // CHECK-NEXT: <array>
1266*67e74705SXin Li // CHECK-NEXT: <dict>
1267*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>68</integer>
1268*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
1269*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1270*67e74705SXin Li // CHECK-NEXT: </dict>
1271*67e74705SXin Li // CHECK-NEXT: <dict>
1272*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>68</integer>
1273*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>16</integer>
1274*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1275*67e74705SXin Li // CHECK-NEXT: </dict>
1276*67e74705SXin Li // CHECK-NEXT: </array>
1277*67e74705SXin Li // CHECK-NEXT: </array>
1278*67e74705SXin Li // CHECK-NEXT: <key>depth</key><integer>0</integer>
1279*67e74705SXin Li // CHECK-NEXT: <key>extended_message</key>
1280*67e74705SXin Li // CHECK-NEXT: <string>Assuming 'y' is 0</string>
1281*67e74705SXin Li // CHECK-NEXT: <key>message</key>
1282*67e74705SXin Li // CHECK-NEXT: <string>Assuming 'y' is 0</string>
1283*67e74705SXin Li // CHECK-NEXT: </dict>
1284*67e74705SXin Li // CHECK-NEXT: <dict>
1285*67e74705SXin Li // CHECK-NEXT: <key>kind</key><string>control</string>
1286*67e74705SXin Li // CHECK-NEXT: <key>edges</key>
1287*67e74705SXin Li // CHECK-NEXT: <array>
1288*67e74705SXin Li // CHECK-NEXT: <dict>
1289*67e74705SXin Li // CHECK-NEXT: <key>start</key>
1290*67e74705SXin Li // CHECK-NEXT: <array>
1291*67e74705SXin Li // CHECK-NEXT: <dict>
1292*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>68</integer>
1293*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
1294*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1295*67e74705SXin Li // CHECK-NEXT: </dict>
1296*67e74705SXin Li // CHECK-NEXT: <dict>
1297*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>68</integer>
1298*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>16</integer>
1299*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1300*67e74705SXin Li // CHECK-NEXT: </dict>
1301*67e74705SXin Li // CHECK-NEXT: </array>
1302*67e74705SXin Li // CHECK-NEXT: <key>end</key>
1303*67e74705SXin Li // CHECK-NEXT: <array>
1304*67e74705SXin Li // CHECK-NEXT: <dict>
1305*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>70</integer>
1306*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
1307*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1308*67e74705SXin Li // CHECK-NEXT: </dict>
1309*67e74705SXin Li // CHECK-NEXT: <dict>
1310*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>70</integer>
1311*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>8</integer>
1312*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1313*67e74705SXin Li // CHECK-NEXT: </dict>
1314*67e74705SXin Li // CHECK-NEXT: </array>
1315*67e74705SXin Li // CHECK-NEXT: </dict>
1316*67e74705SXin Li // CHECK-NEXT: </array>
1317*67e74705SXin Li // CHECK-NEXT: </dict>
1318*67e74705SXin Li // CHECK-NEXT: <dict>
1319*67e74705SXin Li // CHECK-NEXT: <key>kind</key><string>control</string>
1320*67e74705SXin Li // CHECK-NEXT: <key>edges</key>
1321*67e74705SXin Li // CHECK-NEXT: <array>
1322*67e74705SXin Li // CHECK-NEXT: <dict>
1323*67e74705SXin Li // CHECK-NEXT: <key>start</key>
1324*67e74705SXin Li // CHECK-NEXT: <array>
1325*67e74705SXin Li // CHECK-NEXT: <dict>
1326*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>70</integer>
1327*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
1328*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1329*67e74705SXin Li // CHECK-NEXT: </dict>
1330*67e74705SXin Li // CHECK-NEXT: <dict>
1331*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>70</integer>
1332*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>8</integer>
1333*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1334*67e74705SXin Li // CHECK-NEXT: </dict>
1335*67e74705SXin Li // CHECK-NEXT: </array>
1336*67e74705SXin Li // CHECK-NEXT: <key>end</key>
1337*67e74705SXin Li // CHECK-NEXT: <array>
1338*67e74705SXin Li // CHECK-NEXT: <dict>
1339*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>70</integer>
1340*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>10</integer>
1341*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1342*67e74705SXin Li // CHECK-NEXT: </dict>
1343*67e74705SXin Li // CHECK-NEXT: <dict>
1344*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>70</integer>
1345*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>10</integer>
1346*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1347*67e74705SXin Li // CHECK-NEXT: </dict>
1348*67e74705SXin Li // CHECK-NEXT: </array>
1349*67e74705SXin Li // CHECK-NEXT: </dict>
1350*67e74705SXin Li // CHECK-NEXT: </array>
1351*67e74705SXin Li // CHECK-NEXT: </dict>
1352*67e74705SXin Li // CHECK-NEXT: <dict>
1353*67e74705SXin Li // CHECK-NEXT: <key>kind</key><string>event</string>
1354*67e74705SXin Li // CHECK-NEXT: <key>location</key>
1355*67e74705SXin Li // CHECK-NEXT: <dict>
1356*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>70</integer>
1357*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>10</integer>
1358*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1359*67e74705SXin Li // CHECK-NEXT: </dict>
1360*67e74705SXin Li // CHECK-NEXT: <key>ranges</key>
1361*67e74705SXin Li // CHECK-NEXT: <array>
1362*67e74705SXin Li // CHECK-NEXT: <array>
1363*67e74705SXin Li // CHECK-NEXT: <dict>
1364*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>70</integer>
1365*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>11</integer>
1366*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1367*67e74705SXin Li // CHECK-NEXT: </dict>
1368*67e74705SXin Li // CHECK-NEXT: <dict>
1369*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>70</integer>
1370*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>11</integer>
1371*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1372*67e74705SXin Li // CHECK-NEXT: </dict>
1373*67e74705SXin Li // CHECK-NEXT: </array>
1374*67e74705SXin Li // CHECK-NEXT: </array>
1375*67e74705SXin Li // CHECK-NEXT: <key>depth</key><integer>0</integer>
1376*67e74705SXin Li // CHECK-NEXT: <key>extended_message</key>
1377*67e74705SXin Li // CHECK-NEXT: <string>Dereference of null pointer (loaded from variable 'p')</string>
1378*67e74705SXin Li // CHECK-NEXT: <key>message</key>
1379*67e74705SXin Li // CHECK-NEXT: <string>Dereference of null pointer (loaded from variable 'p')</string>
1380*67e74705SXin Li // CHECK-NEXT: </dict>
1381*67e74705SXin Li // CHECK-NEXT: </array>
1382*67e74705SXin Li // CHECK-NEXT: <key>description</key><string>Dereference of null pointer (loaded from variable 'p')</string>
1383*67e74705SXin Li // CHECK-NEXT: <key>category</key><string>Logic error</string>
1384*67e74705SXin Li // CHECK-NEXT: <key>type</key><string>Dereference of null pointer</string>
1385*67e74705SXin Li // CHECK-NEXT: <key>check_name</key><string>core.NullDereference</string>
1386*67e74705SXin Li // CHECK-NEXT: <!-- This hash is experimental and going to change! -->
1387*67e74705SXin Li // CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>41f58f9549aa1867e461a7996a8d335c</string>
1388*67e74705SXin Li // CHECK-NEXT: <key>issue_context_kind</key><string>function</string>
1389*67e74705SXin Li // CHECK-NEXT: <key>issue_context</key><string>useMultiNote</string>
1390*67e74705SXin Li // CHECK-NEXT: <key>issue_hash_function_offset</key><string>4</string>
1391*67e74705SXin Li // CHECK-NEXT: <key>location</key>
1392*67e74705SXin Li // CHECK-NEXT: <dict>
1393*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>70</integer>
1394*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>10</integer>
1395*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1396*67e74705SXin Li // CHECK-NEXT: </dict>
1397*67e74705SXin Li // CHECK-NEXT: </dict>
1398*67e74705SXin Li // CHECK-NEXT: <dict>
1399*67e74705SXin Li // CHECK-NEXT: <key>path</key>
1400*67e74705SXin Li // CHECK-NEXT: <array>
1401*67e74705SXin Li // CHECK-NEXT: <dict>
1402*67e74705SXin Li // CHECK-NEXT: <key>kind</key><string>event</string>
1403*67e74705SXin Li // CHECK-NEXT: <key>location</key>
1404*67e74705SXin Li // CHECK-NEXT: <dict>
1405*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>82</integer>
1406*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
1407*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1408*67e74705SXin Li // CHECK-NEXT: </dict>
1409*67e74705SXin Li // CHECK-NEXT: <key>ranges</key>
1410*67e74705SXin Li // CHECK-NEXT: <array>
1411*67e74705SXin Li // CHECK-NEXT: <array>
1412*67e74705SXin Li // CHECK-NEXT: <dict>
1413*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>82</integer>
1414*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
1415*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1416*67e74705SXin Li // CHECK-NEXT: </dict>
1417*67e74705SXin Li // CHECK-NEXT: <dict>
1418*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>82</integer>
1419*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>12</integer>
1420*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1421*67e74705SXin Li // CHECK-NEXT: </dict>
1422*67e74705SXin Li // CHECK-NEXT: </array>
1423*67e74705SXin Li // CHECK-NEXT: </array>
1424*67e74705SXin Li // CHECK-NEXT: <key>depth</key><integer>0</integer>
1425*67e74705SXin Li // CHECK-NEXT: <key>extended_message</key>
1426*67e74705SXin Li // CHECK-NEXT: <string>Passing null pointer value via 1st parameter 'a'</string>
1427*67e74705SXin Li // CHECK-NEXT: <key>message</key>
1428*67e74705SXin Li // CHECK-NEXT: <string>Passing null pointer value via 1st parameter 'a'</string>
1429*67e74705SXin Li // CHECK-NEXT: </dict>
1430*67e74705SXin Li // CHECK-NEXT: <dict>
1431*67e74705SXin Li // CHECK-NEXT: <key>kind</key><string>event</string>
1432*67e74705SXin Li // CHECK-NEXT: <key>location</key>
1433*67e74705SXin Li // CHECK-NEXT: <dict>
1434*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>82</integer>
1435*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
1436*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1437*67e74705SXin Li // CHECK-NEXT: </dict>
1438*67e74705SXin Li // CHECK-NEXT: <key>ranges</key>
1439*67e74705SXin Li // CHECK-NEXT: <array>
1440*67e74705SXin Li // CHECK-NEXT: <array>
1441*67e74705SXin Li // CHECK-NEXT: <dict>
1442*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>82</integer>
1443*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
1444*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1445*67e74705SXin Li // CHECK-NEXT: </dict>
1446*67e74705SXin Li // CHECK-NEXT: <dict>
1447*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>82</integer>
1448*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>12</integer>
1449*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1450*67e74705SXin Li // CHECK-NEXT: </dict>
1451*67e74705SXin Li // CHECK-NEXT: </array>
1452*67e74705SXin Li // CHECK-NEXT: </array>
1453*67e74705SXin Li // CHECK-NEXT: <key>depth</key><integer>0</integer>
1454*67e74705SXin Li // CHECK-NEXT: <key>extended_message</key>
1455*67e74705SXin Li // CHECK-NEXT: <string>Calling 'null_deref'</string>
1456*67e74705SXin Li // CHECK-NEXT: <key>message</key>
1457*67e74705SXin Li // CHECK-NEXT: <string>Calling 'null_deref'</string>
1458*67e74705SXin Li // CHECK-NEXT: </dict>
1459*67e74705SXin Li // CHECK-NEXT: <dict>
1460*67e74705SXin Li // CHECK-NEXT: <key>kind</key><string>event</string>
1461*67e74705SXin Li // CHECK-NEXT: <key>location</key>
1462*67e74705SXin Li // CHECK-NEXT: <dict>
1463*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>75</integer>
1464*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>1</integer>
1465*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1466*67e74705SXin Li // CHECK-NEXT: </dict>
1467*67e74705SXin Li // CHECK-NEXT: <key>depth</key><integer>1</integer>
1468*67e74705SXin Li // CHECK-NEXT: <key>extended_message</key>
1469*67e74705SXin Li // CHECK-NEXT: <string>Entered call from 'test1'</string>
1470*67e74705SXin Li // CHECK-NEXT: <key>message</key>
1471*67e74705SXin Li // CHECK-NEXT: <string>Entered call from 'test1'</string>
1472*67e74705SXin Li // CHECK-NEXT: </dict>
1473*67e74705SXin Li // CHECK-NEXT: <dict>
1474*67e74705SXin Li // CHECK-NEXT: <key>kind</key><string>control</string>
1475*67e74705SXin Li // CHECK-NEXT: <key>edges</key>
1476*67e74705SXin Li // CHECK-NEXT: <array>
1477*67e74705SXin Li // CHECK-NEXT: <dict>
1478*67e74705SXin Li // CHECK-NEXT: <key>start</key>
1479*67e74705SXin Li // CHECK-NEXT: <array>
1480*67e74705SXin Li // CHECK-NEXT: <dict>
1481*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>75</integer>
1482*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>1</integer>
1483*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1484*67e74705SXin Li // CHECK-NEXT: </dict>
1485*67e74705SXin Li // CHECK-NEXT: <dict>
1486*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>75</integer>
1487*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>4</integer>
1488*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1489*67e74705SXin Li // CHECK-NEXT: </dict>
1490*67e74705SXin Li // CHECK-NEXT: </array>
1491*67e74705SXin Li // CHECK-NEXT: <key>end</key>
1492*67e74705SXin Li // CHECK-NEXT: <array>
1493*67e74705SXin Li // CHECK-NEXT: <dict>
1494*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>76</integer>
1495*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
1496*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1497*67e74705SXin Li // CHECK-NEXT: </dict>
1498*67e74705SXin Li // CHECK-NEXT: <dict>
1499*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>76</integer>
1500*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>4</integer>
1501*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1502*67e74705SXin Li // CHECK-NEXT: </dict>
1503*67e74705SXin Li // CHECK-NEXT: </array>
1504*67e74705SXin Li // CHECK-NEXT: </dict>
1505*67e74705SXin Li // CHECK-NEXT: </array>
1506*67e74705SXin Li // CHECK-NEXT: </dict>
1507*67e74705SXin Li // CHECK-NEXT: <dict>
1508*67e74705SXin Li // CHECK-NEXT: <key>kind</key><string>control</string>
1509*67e74705SXin Li // CHECK-NEXT: <key>edges</key>
1510*67e74705SXin Li // CHECK-NEXT: <array>
1511*67e74705SXin Li // CHECK-NEXT: <dict>
1512*67e74705SXin Li // CHECK-NEXT: <key>start</key>
1513*67e74705SXin Li // CHECK-NEXT: <array>
1514*67e74705SXin Li // CHECK-NEXT: <dict>
1515*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>76</integer>
1516*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</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>76</integer>
1521*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>4</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: <key>end</key>
1526*67e74705SXin Li // CHECK-NEXT: <array>
1527*67e74705SXin Li // CHECK-NEXT: <dict>
1528*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>78</integer>
1529*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
1530*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1531*67e74705SXin Li // CHECK-NEXT: </dict>
1532*67e74705SXin Li // CHECK-NEXT: <dict>
1533*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>78</integer>
1534*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
1535*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1536*67e74705SXin Li // CHECK-NEXT: </dict>
1537*67e74705SXin Li // CHECK-NEXT: </array>
1538*67e74705SXin Li // CHECK-NEXT: </dict>
1539*67e74705SXin Li // CHECK-NEXT: </array>
1540*67e74705SXin Li // CHECK-NEXT: </dict>
1541*67e74705SXin Li // CHECK-NEXT: <dict>
1542*67e74705SXin Li // CHECK-NEXT: <key>kind</key><string>control</string>
1543*67e74705SXin Li // CHECK-NEXT: <key>edges</key>
1544*67e74705SXin Li // CHECK-NEXT: <array>
1545*67e74705SXin Li // CHECK-NEXT: <dict>
1546*67e74705SXin Li // CHECK-NEXT: <key>start</key>
1547*67e74705SXin Li // CHECK-NEXT: <array>
1548*67e74705SXin Li // CHECK-NEXT: <dict>
1549*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>78</integer>
1550*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
1551*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1552*67e74705SXin Li // CHECK-NEXT: </dict>
1553*67e74705SXin Li // CHECK-NEXT: <dict>
1554*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>78</integer>
1555*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>3</integer>
1556*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1557*67e74705SXin Li // CHECK-NEXT: </dict>
1558*67e74705SXin Li // CHECK-NEXT: </array>
1559*67e74705SXin Li // CHECK-NEXT: <key>end</key>
1560*67e74705SXin Li // CHECK-NEXT: <array>
1561*67e74705SXin Li // CHECK-NEXT: <dict>
1562*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>78</integer>
1563*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>6</integer>
1564*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1565*67e74705SXin Li // CHECK-NEXT: </dict>
1566*67e74705SXin Li // CHECK-NEXT: <dict>
1567*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>78</integer>
1568*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>6</integer>
1569*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1570*67e74705SXin Li // CHECK-NEXT: </dict>
1571*67e74705SXin Li // CHECK-NEXT: </array>
1572*67e74705SXin Li // CHECK-NEXT: </dict>
1573*67e74705SXin Li // CHECK-NEXT: </array>
1574*67e74705SXin Li // CHECK-NEXT: </dict>
1575*67e74705SXin Li // CHECK-NEXT: <dict>
1576*67e74705SXin Li // CHECK-NEXT: <key>kind</key><string>event</string>
1577*67e74705SXin Li // CHECK-NEXT: <key>location</key>
1578*67e74705SXin Li // CHECK-NEXT: <dict>
1579*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>78</integer>
1580*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>6</integer>
1581*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1582*67e74705SXin Li // CHECK-NEXT: </dict>
1583*67e74705SXin Li // CHECK-NEXT: <key>ranges</key>
1584*67e74705SXin Li // CHECK-NEXT: <array>
1585*67e74705SXin Li // CHECK-NEXT: <array>
1586*67e74705SXin Li // CHECK-NEXT: <dict>
1587*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>78</integer>
1588*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>4</integer>
1589*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1590*67e74705SXin Li // CHECK-NEXT: </dict>
1591*67e74705SXin Li // CHECK-NEXT: <dict>
1592*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>78</integer>
1593*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>4</integer>
1594*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1595*67e74705SXin Li // CHECK-NEXT: </dict>
1596*67e74705SXin Li // CHECK-NEXT: </array>
1597*67e74705SXin Li // CHECK-NEXT: </array>
1598*67e74705SXin Li // CHECK-NEXT: <key>depth</key><integer>1</integer>
1599*67e74705SXin Li // CHECK-NEXT: <key>extended_message</key>
1600*67e74705SXin Li // CHECK-NEXT: <string>Dereference of null pointer (loaded from variable 'a')</string>
1601*67e74705SXin Li // CHECK-NEXT: <key>message</key>
1602*67e74705SXin Li // CHECK-NEXT: <string>Dereference of null pointer (loaded from variable 'a')</string>
1603*67e74705SXin Li // CHECK-NEXT: </dict>
1604*67e74705SXin Li // CHECK-NEXT: </array>
1605*67e74705SXin Li // CHECK-NEXT: <key>description</key><string>Dereference of null pointer (loaded from variable 'a')</string>
1606*67e74705SXin Li // CHECK-NEXT: <key>category</key><string>Logic error</string>
1607*67e74705SXin Li // CHECK-NEXT: <key>type</key><string>Dereference of null pointer</string>
1608*67e74705SXin Li // CHECK-NEXT: <key>check_name</key><string>core.NullDereference</string>
1609*67e74705SXin Li // CHECK-NEXT: <!-- This hash is experimental and going to change! -->
1610*67e74705SXin Li // CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>2dc47a4afc2f349f12217b38588769f4</string>
1611*67e74705SXin Li // CHECK-NEXT: <key>issue_context_kind</key><string>function</string>
1612*67e74705SXin Li // CHECK-NEXT: <key>issue_context</key><string>null_deref</string>
1613*67e74705SXin Li // CHECK-NEXT: <key>issue_hash_function_offset</key><string>3</string>
1614*67e74705SXin Li // CHECK-NEXT: <key>location</key>
1615*67e74705SXin Li // CHECK-NEXT: <dict>
1616*67e74705SXin Li // CHECK-NEXT: <key>line</key><integer>78</integer>
1617*67e74705SXin Li // CHECK-NEXT: <key>col</key><integer>6</integer>
1618*67e74705SXin Li // CHECK-NEXT: <key>file</key><integer>0</integer>
1619*67e74705SXin Li // CHECK-NEXT: </dict>
1620*67e74705SXin Li // CHECK-NEXT: </dict>
1621*67e74705SXin Li // CHECK-NEXT: </array>
1622