blob: 769c1bc60247175ac48c9e876158755e22414edf [file] [log] [blame]
Jordan Rose2b1b0252012-08-06 21:28:11 +00001// RUN: %clang --analyze %s -o - 2>/dev/null | FileCheck %s
Ted Kremenekc6ea5d42009-11-17 02:31:39 +00002
3void test_null_init(void) {
4 int *p = 0;
5 *p = 0xDEADBEEF;
6}
Ted Kremeneke576af22009-11-24 01:33:10 +00007
8void test_null_assign(void) {
9 int *p;
10 p = 0;
11 *p = 0xDEADBEEF;
12}
13
14void test_null_assign_transitive(void) {
15 int *p;
16 p = 0;
17 int *q = p;
18 *q = 0xDEADBEEF;
19}
20
21void test_null_cond(int *p) {
22 if (!p) {
23 *p = 0xDEADBEEF;
24 }
25}
Ted Kremenek76aadc32012-03-09 01:13:14 +000026
Ted Kremeneke576af22009-11-24 01:33:10 +000027void test_null_cond_transitive(int *q) {
28 if (!q) {
29 int *p = q;
30 *p = 0xDEADBEEF;
31 }
32}
33
34void test_null_field(void) {
35 struct s { int *p; } x;
36 x.p = 0;
37 *(x.p) = 0xDEADBEEF;
38}
39
Ted Kremenek6ae32572011-12-20 22:00:25 +000040void test_assumptions(int a, int b)
41{
42 if (a == 0) {
43 return;
44 }
45 if (b != 0) {
46 return;
47 }
48 int *p = 0;
49 *p = 0xDEADBEEF;
50}
51
Ted Kremenekd1247c52012-01-04 08:18:09 +000052int *bar_cond_assign();
53int test_cond_assign() {
54 int *p;
55 if (p = bar_cond_assign())
56 return 1;
57 return *p;
58}
59
Ted Kremeneke215ba12012-02-18 22:02:57 +000060// The following previously crashed when generating extensive diagnostics.
61// <rdar://problem/10797980>
62@interface RDar10797980_help
63@property (readonly) int x;
64@end
65
66@interface RDar10797980 {
67 RDar10797980_help *y;
68}
69- (void) test;
70@end
71
72@implementation RDar10797980
73- (void) test {
74 if (y.x == 1) {
75 int *p = 0;
76 *p = 0xDEADBEEF; // expected-warning {{deference}}
77 }
78}
79@end
80
Ted Kremenekc6ea5d42009-11-17 02:31:39 +000081// CHECK: <?xml version="1.0" encoding="UTF-8"?>
Jordan Rose2b1b0252012-08-06 21:28:11 +000082// CHECK: <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
Ted Kremenekc6ea5d42009-11-17 02:31:39 +000083// CHECK: <plist version="1.0">
84// CHECK: <dict>
85// CHECK: <key>files</key>
86// CHECK: <array>
Jordan Rose2b1b0252012-08-06 21:28:11 +000087// CHECK: <string>{{.*}}plist-output.m</string>
Ted Kremenekc6ea5d42009-11-17 02:31:39 +000088// CHECK: </array>
89// CHECK: <key>diagnostics</key>
90// CHECK: <array>
91// CHECK: <dict>
92// CHECK: <key>path</key>
93// CHECK: <array>
94// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +000095// CHECK: <key>kind</key><string>event</string>
96// CHECK: <key>location</key>
97// CHECK: <dict>
98// CHECK: <key>line</key><integer>4</integer>
99// CHECK: <key>col</key><integer>3</integer>
100// CHECK: <key>file</key><integer>0</integer>
101// CHECK: </dict>
102// CHECK: <key>ranges</key>
103// CHECK: <array>
104// CHECK: <array>
105// CHECK: <dict>
106// CHECK: <key>line</key><integer>4</integer>
107// CHECK: <key>col</key><integer>3</integer>
108// CHECK: <key>file</key><integer>0</integer>
109// CHECK: </dict>
110// CHECK: <dict>
111// CHECK: <key>line</key><integer>4</integer>
112// CHECK: <key>col</key><integer>8</integer>
113// CHECK: <key>file</key><integer>0</integer>
114// CHECK: </dict>
115// CHECK: </array>
116// CHECK: </array>
117// CHECK: <key>depth</key><integer>0</integer>
118// CHECK: <key>extended_message</key>
119// CHECK: <string>Variable &apos;p&apos; initialized to a null pointer value</string>
120// CHECK: <key>message</key>
121// CHECK: <string>Variable &apos;p&apos; initialized to a null pointer value</string>
122// CHECK: </dict>
123// CHECK: <dict>
Ted Kremenekc6ea5d42009-11-17 02:31:39 +0000124// CHECK: <key>kind</key><string>control</string>
125// CHECK: <key>edges</key>
126// CHECK: <array>
127// CHECK: <dict>
128// CHECK: <key>start</key>
129// CHECK: <array>
130// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000131// CHECK: <key>line</key><integer>4</integer>
Ted Kremenekc6ea5d42009-11-17 02:31:39 +0000132// CHECK: <key>col</key><integer>3</integer>
133// CHECK: <key>file</key><integer>0</integer>
134// CHECK: </dict>
135// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000136// CHECK: <key>line</key><integer>4</integer>
Ted Kremenek7453a722012-06-05 22:00:52 +0000137// CHECK: <key>col</key><integer>5</integer>
Ted Kremenekc6ea5d42009-11-17 02:31:39 +0000138// CHECK: <key>file</key><integer>0</integer>
139// CHECK: </dict>
140// CHECK: </array>
141// CHECK: <key>end</key>
142// CHECK: <array>
143// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000144// CHECK: <key>line</key><integer>5</integer>
Ted Kremenekc6ea5d42009-11-17 02:31:39 +0000145// CHECK: <key>col</key><integer>3</integer>
146// CHECK: <key>file</key><integer>0</integer>
147// CHECK: </dict>
148// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000149// CHECK: <key>line</key><integer>5</integer>
Ted Kremenekbd613132012-04-06 22:10:18 +0000150// CHECK: <key>col</key><integer>3</integer>
Ted Kremenekc6ea5d42009-11-17 02:31:39 +0000151// CHECK: <key>file</key><integer>0</integer>
152// CHECK: </dict>
153// CHECK: </array>
154// CHECK: </dict>
155// CHECK: </array>
156// CHECK: </dict>
157// CHECK: <dict>
158// CHECK: <key>kind</key><string>event</string>
159// CHECK: <key>location</key>
160// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000161// CHECK: <key>line</key><integer>5</integer>
Ted Kremenekc6ea5d42009-11-17 02:31:39 +0000162// CHECK: <key>col</key><integer>3</integer>
163// CHECK: <key>file</key><integer>0</integer>
164// CHECK: </dict>
165// CHECK: <key>ranges</key>
166// CHECK: <array>
167// CHECK: <array>
168// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000169// CHECK: <key>line</key><integer>5</integer>
Ted Kremenek452b84d2010-03-23 01:11:38 +0000170// CHECK: <key>col</key><integer>4</integer>
Ted Kremenekc6ea5d42009-11-17 02:31:39 +0000171// CHECK: <key>file</key><integer>0</integer>
172// CHECK: </dict>
173// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000174// CHECK: <key>line</key><integer>5</integer>
Ted Kremenekc6ea5d42009-11-17 02:31:39 +0000175// CHECK: <key>col</key><integer>4</integer>
176// CHECK: <key>file</key><integer>0</integer>
177// CHECK: </dict>
178// CHECK: </array>
179// CHECK: </array>
Ted Kremenek07189522012-04-04 18:11:35 +0000180// CHECK: <key>depth</key><integer>0</integer>
Ted Kremenekc6ea5d42009-11-17 02:31:39 +0000181// CHECK: <key>extended_message</key>
Ted Kremenek452b84d2010-03-23 01:11:38 +0000182// CHECK: <string>Dereference of null pointer (loaded from variable &apos;p&apos;)</string>
Ted Kremeneke576af22009-11-24 01:33:10 +0000183// CHECK: <key>message</key>
Ted Kremenek452b84d2010-03-23 01:11:38 +0000184// CHECK: <string>Dereference of null pointer (loaded from variable &apos;p&apos;)</string>
Ted Kremeneke576af22009-11-24 01:33:10 +0000185// CHECK: </dict>
186// CHECK: </array>
Ted Kremenek452b84d2010-03-23 01:11:38 +0000187// CHECK: <key>description</key><string>Dereference of null pointer (loaded from variable &apos;p&apos;)</string>
Ted Kremeneke576af22009-11-24 01:33:10 +0000188// CHECK: <key>category</key><string>Logic error</string>
189// CHECK: <key>type</key><string>Dereference of null pointer</string>
Ted Kremenek07189522012-04-04 18:11:35 +0000190// CHECK: <key>issue_context_kind</key><string>function</string>
191// CHECK: <key>issue_context</key><string>test_null_init</string>
Anna Zaksa64fae12012-06-08 00:04:43 +0000192// CHECK: <key>issue_hash</key><integer>2</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000193// CHECK: <key>location</key>
194// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000195// CHECK: <key>line</key><integer>5</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000196// CHECK: <key>col</key><integer>3</integer>
197// CHECK: <key>file</key><integer>0</integer>
198// CHECK: </dict>
199// CHECK: </dict>
200// CHECK: <dict>
201// CHECK: <key>path</key>
202// CHECK: <array>
203// CHECK: <dict>
204// CHECK: <key>kind</key><string>control</string>
205// CHECK: <key>edges</key>
206// CHECK: <array>
207// CHECK: <dict>
208// CHECK: <key>start</key>
209// CHECK: <array>
210// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000211// CHECK: <key>line</key><integer>9</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000212// CHECK: <key>col</key><integer>3</integer>
213// CHECK: <key>file</key><integer>0</integer>
214// CHECK: </dict>
215// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000216// CHECK: <key>line</key><integer>9</integer>
Ted Kremenek7453a722012-06-05 22:00:52 +0000217// CHECK: <key>col</key><integer>5</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000218// CHECK: <key>file</key><integer>0</integer>
219// CHECK: </dict>
220// CHECK: </array>
221// CHECK: <key>end</key>
222// CHECK: <array>
223// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000224// CHECK: <key>line</key><integer>10</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000225// CHECK: <key>col</key><integer>3</integer>
226// CHECK: <key>file</key><integer>0</integer>
227// CHECK: </dict>
228// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000229// CHECK: <key>line</key><integer>10</integer>
Ted Kremenekbd613132012-04-06 22:10:18 +0000230// CHECK: <key>col</key><integer>3</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000231// CHECK: <key>file</key><integer>0</integer>
232// CHECK: </dict>
233// CHECK: </array>
234// CHECK: </dict>
235// CHECK: </array>
236// CHECK: </dict>
237// CHECK: <dict>
238// CHECK: <key>kind</key><string>event</string>
239// CHECK: <key>location</key>
240// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000241// CHECK: <key>line</key><integer>10</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000242// CHECK: <key>col</key><integer>3</integer>
243// CHECK: <key>file</key><integer>0</integer>
244// CHECK: </dict>
245// CHECK: <key>ranges</key>
246// CHECK: <array>
247// CHECK: <array>
248// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000249// CHECK: <key>line</key><integer>10</integer>
250// CHECK: <key>col</key><integer>3</integer>
251// CHECK: <key>file</key><integer>0</integer>
252// CHECK: </dict>
253// CHECK: <dict>
254// CHECK: <key>line</key><integer>10</integer>
255// CHECK: <key>col</key><integer>7</integer>
256// CHECK: <key>file</key><integer>0</integer>
257// CHECK: </dict>
258// CHECK: </array>
259// CHECK: </array>
260// CHECK: <key>depth</key><integer>0</integer>
261// CHECK: <key>extended_message</key>
262// CHECK: <string>Null pointer value stored to &apos;p&apos;</string>
263// CHECK: <key>message</key>
264// CHECK: <string>Null pointer value stored to &apos;p&apos;</string>
265// CHECK: </dict>
266// CHECK: <dict>
267// CHECK: <key>kind</key><string>control</string>
268// CHECK: <key>edges</key>
269// CHECK: <array>
270// CHECK: <dict>
271// CHECK: <key>start</key>
272// CHECK: <array>
273// CHECK: <dict>
274// CHECK: <key>line</key><integer>10</integer>
275// CHECK: <key>col</key><integer>3</integer>
276// CHECK: <key>file</key><integer>0</integer>
277// CHECK: </dict>
278// CHECK: <dict>
279// CHECK: <key>line</key><integer>10</integer>
280// CHECK: <key>col</key><integer>3</integer>
281// CHECK: <key>file</key><integer>0</integer>
282// CHECK: </dict>
283// CHECK: </array>
284// CHECK: <key>end</key>
285// CHECK: <array>
286// CHECK: <dict>
287// CHECK: <key>line</key><integer>11</integer>
288// CHECK: <key>col</key><integer>3</integer>
289// CHECK: <key>file</key><integer>0</integer>
290// CHECK: </dict>
291// CHECK: <dict>
292// CHECK: <key>line</key><integer>11</integer>
293// CHECK: <key>col</key><integer>3</integer>
294// CHECK: <key>file</key><integer>0</integer>
295// CHECK: </dict>
296// CHECK: </array>
297// CHECK: </dict>
298// CHECK: </array>
299// CHECK: </dict>
300// CHECK: <dict>
301// CHECK: <key>kind</key><string>event</string>
302// CHECK: <key>location</key>
303// CHECK: <dict>
304// CHECK: <key>line</key><integer>11</integer>
305// CHECK: <key>col</key><integer>3</integer>
306// CHECK: <key>file</key><integer>0</integer>
307// CHECK: </dict>
308// CHECK: <key>ranges</key>
309// CHECK: <array>
310// CHECK: <array>
311// CHECK: <dict>
312// CHECK: <key>line</key><integer>11</integer>
Ted Kremenek452b84d2010-03-23 01:11:38 +0000313// CHECK: <key>col</key><integer>4</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000314// CHECK: <key>file</key><integer>0</integer>
315// CHECK: </dict>
316// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000317// CHECK: <key>line</key><integer>11</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000318// CHECK: <key>col</key><integer>4</integer>
319// CHECK: <key>file</key><integer>0</integer>
320// CHECK: </dict>
321// CHECK: </array>
322// CHECK: </array>
Ted Kremenek07189522012-04-04 18:11:35 +0000323// CHECK: <key>depth</key><integer>0</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000324// CHECK: <key>extended_message</key>
Ted Kremenek452b84d2010-03-23 01:11:38 +0000325// CHECK: <string>Dereference of null pointer (loaded from variable &apos;p&apos;)</string>
Ted Kremeneke576af22009-11-24 01:33:10 +0000326// CHECK: <key>message</key>
Ted Kremenek452b84d2010-03-23 01:11:38 +0000327// CHECK: <string>Dereference of null pointer (loaded from variable &apos;p&apos;)</string>
Ted Kremeneke576af22009-11-24 01:33:10 +0000328// CHECK: </dict>
329// CHECK: </array>
Ted Kremenek452b84d2010-03-23 01:11:38 +0000330// CHECK: <key>description</key><string>Dereference of null pointer (loaded from variable &apos;p&apos;)</string>
Ted Kremeneke576af22009-11-24 01:33:10 +0000331// CHECK: <key>category</key><string>Logic error</string>
332// CHECK: <key>type</key><string>Dereference of null pointer</string>
Ted Kremenek07189522012-04-04 18:11:35 +0000333// CHECK: <key>issue_context_kind</key><string>function</string>
334// CHECK: <key>issue_context</key><string>test_null_assign</string>
Anna Zaksa64fae12012-06-08 00:04:43 +0000335// CHECK: <key>issue_hash</key><integer>3</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000336// CHECK: <key>location</key>
337// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000338// CHECK: <key>line</key><integer>11</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000339// CHECK: <key>col</key><integer>3</integer>
340// CHECK: <key>file</key><integer>0</integer>
341// CHECK: </dict>
342// CHECK: </dict>
343// CHECK: <dict>
344// CHECK: <key>path</key>
345// CHECK: <array>
346// CHECK: <dict>
347// CHECK: <key>kind</key><string>control</string>
348// CHECK: <key>edges</key>
349// CHECK: <array>
350// CHECK: <dict>
351// CHECK: <key>start</key>
352// CHECK: <array>
353// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000354// CHECK: <key>line</key><integer>15</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000355// CHECK: <key>col</key><integer>3</integer>
356// CHECK: <key>file</key><integer>0</integer>
357// CHECK: </dict>
358// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000359// CHECK: <key>line</key><integer>15</integer>
Ted Kremenek7453a722012-06-05 22:00:52 +0000360// CHECK: <key>col</key><integer>5</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000361// CHECK: <key>file</key><integer>0</integer>
362// CHECK: </dict>
363// CHECK: </array>
364// CHECK: <key>end</key>
365// CHECK: <array>
366// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000367// CHECK: <key>line</key><integer>17</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000368// CHECK: <key>col</key><integer>3</integer>
369// CHECK: <key>file</key><integer>0</integer>
370// CHECK: </dict>
371// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000372// CHECK: <key>line</key><integer>17</integer>
373// CHECK: <key>col</key><integer>5</integer>
374// CHECK: <key>file</key><integer>0</integer>
375// CHECK: </dict>
376// CHECK: </array>
377// CHECK: </dict>
378// CHECK: </array>
379// CHECK: </dict>
380// CHECK: <dict>
381// CHECK: <key>kind</key><string>event</string>
382// CHECK: <key>location</key>
383// CHECK: <dict>
384// CHECK: <key>line</key><integer>17</integer>
385// CHECK: <key>col</key><integer>3</integer>
386// CHECK: <key>file</key><integer>0</integer>
387// CHECK: </dict>
388// CHECK: <key>ranges</key>
389// CHECK: <array>
390// CHECK: <array>
391// CHECK: <dict>
392// CHECK: <key>line</key><integer>17</integer>
393// CHECK: <key>col</key><integer>3</integer>
394// CHECK: <key>file</key><integer>0</integer>
395// CHECK: </dict>
396// CHECK: <dict>
397// CHECK: <key>line</key><integer>17</integer>
398// CHECK: <key>col</key><integer>8</integer>
399// CHECK: <key>file</key><integer>0</integer>
400// CHECK: </dict>
401// CHECK: </array>
402// CHECK: </array>
403// CHECK: <key>depth</key><integer>0</integer>
404// CHECK: <key>extended_message</key>
405// CHECK: <string>Variable &apos;q&apos; initialized to a null pointer value</string>
406// CHECK: <key>message</key>
407// CHECK: <string>Variable &apos;q&apos; initialized to a null pointer value</string>
408// CHECK: </dict>
409// CHECK: <dict>
410// CHECK: <key>kind</key><string>control</string>
411// CHECK: <key>edges</key>
412// CHECK: <array>
413// CHECK: <dict>
414// CHECK: <key>start</key>
415// CHECK: <array>
416// CHECK: <dict>
417// CHECK: <key>line</key><integer>17</integer>
418// CHECK: <key>col</key><integer>3</integer>
419// CHECK: <key>file</key><integer>0</integer>
420// CHECK: </dict>
421// CHECK: <dict>
422// CHECK: <key>line</key><integer>17</integer>
423// CHECK: <key>col</key><integer>5</integer>
424// CHECK: <key>file</key><integer>0</integer>
425// CHECK: </dict>
426// CHECK: </array>
427// CHECK: <key>end</key>
428// CHECK: <array>
429// CHECK: <dict>
430// CHECK: <key>line</key><integer>18</integer>
431// CHECK: <key>col</key><integer>3</integer>
432// CHECK: <key>file</key><integer>0</integer>
433// CHECK: </dict>
434// CHECK: <dict>
435// CHECK: <key>line</key><integer>18</integer>
Ted Kremenekbd613132012-04-06 22:10:18 +0000436// CHECK: <key>col</key><integer>3</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000437// CHECK: <key>file</key><integer>0</integer>
438// CHECK: </dict>
439// CHECK: </array>
440// CHECK: </dict>
441// CHECK: </array>
442// CHECK: </dict>
443// CHECK: <dict>
444// CHECK: <key>kind</key><string>event</string>
445// CHECK: <key>location</key>
446// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000447// CHECK: <key>line</key><integer>18</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000448// CHECK: <key>col</key><integer>3</integer>
449// CHECK: <key>file</key><integer>0</integer>
450// CHECK: </dict>
451// CHECK: <key>ranges</key>
452// CHECK: <array>
453// CHECK: <array>
454// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000455// CHECK: <key>line</key><integer>18</integer>
Ted Kremenek452b84d2010-03-23 01:11:38 +0000456// CHECK: <key>col</key><integer>4</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000457// CHECK: <key>file</key><integer>0</integer>
458// CHECK: </dict>
459// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000460// CHECK: <key>line</key><integer>18</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000461// CHECK: <key>col</key><integer>4</integer>
462// CHECK: <key>file</key><integer>0</integer>
463// CHECK: </dict>
464// CHECK: </array>
465// CHECK: </array>
Ted Kremenek07189522012-04-04 18:11:35 +0000466// CHECK: <key>depth</key><integer>0</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000467// CHECK: <key>extended_message</key>
Ted Kremenek452b84d2010-03-23 01:11:38 +0000468// CHECK: <string>Dereference of null pointer (loaded from variable &apos;q&apos;)</string>
Ted Kremeneke576af22009-11-24 01:33:10 +0000469// CHECK: <key>message</key>
Ted Kremenek452b84d2010-03-23 01:11:38 +0000470// CHECK: <string>Dereference of null pointer (loaded from variable &apos;q&apos;)</string>
Ted Kremeneke576af22009-11-24 01:33:10 +0000471// CHECK: </dict>
472// CHECK: </array>
Ted Kremenek452b84d2010-03-23 01:11:38 +0000473// CHECK: <key>description</key><string>Dereference of null pointer (loaded from variable &apos;q&apos;)</string>
Ted Kremeneke576af22009-11-24 01:33:10 +0000474// CHECK: <key>category</key><string>Logic error</string>
475// CHECK: <key>type</key><string>Dereference of null pointer</string>
Ted Kremenek07189522012-04-04 18:11:35 +0000476// CHECK: <key>issue_context_kind</key><string>function</string>
477// CHECK: <key>issue_context</key><string>test_null_assign_transitive</string>
Anna Zaksa64fae12012-06-08 00:04:43 +0000478// CHECK: <key>issue_hash</key><integer>4</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000479// CHECK: <key>location</key>
480// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000481// CHECK: <key>line</key><integer>18</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000482// CHECK: <key>col</key><integer>3</integer>
483// CHECK: <key>file</key><integer>0</integer>
484// CHECK: </dict>
485// CHECK: </dict>
486// CHECK: <dict>
487// CHECK: <key>path</key>
488// CHECK: <array>
489// CHECK: <dict>
490// CHECK: <key>kind</key><string>control</string>
491// CHECK: <key>edges</key>
492// CHECK: <array>
493// CHECK: <dict>
494// CHECK: <key>start</key>
495// CHECK: <array>
496// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000497// CHECK: <key>line</key><integer>22</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000498// CHECK: <key>col</key><integer>3</integer>
499// CHECK: <key>file</key><integer>0</integer>
500// CHECK: </dict>
501// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000502// CHECK: <key>line</key><integer>22</integer>
Ted Kremenek7453a722012-06-05 22:00:52 +0000503// CHECK: <key>col</key><integer>4</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000504// CHECK: <key>file</key><integer>0</integer>
505// CHECK: </dict>
506// CHECK: </array>
507// CHECK: <key>end</key>
508// CHECK: <array>
509// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000510// CHECK: <key>line</key><integer>22</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000511// CHECK: <key>col</key><integer>7</integer>
512// CHECK: <key>file</key><integer>0</integer>
513// CHECK: </dict>
514// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000515// CHECK: <key>line</key><integer>22</integer>
Ted Kremenek7453a722012-06-05 22:00:52 +0000516// CHECK: <key>col</key><integer>7</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000517// CHECK: <key>file</key><integer>0</integer>
518// CHECK: </dict>
519// CHECK: </array>
520// CHECK: </dict>
521// CHECK: </array>
522// CHECK: </dict>
523// CHECK: <dict>
524// CHECK: <key>kind</key><string>event</string>
525// CHECK: <key>location</key>
526// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000527// CHECK: <key>line</key><integer>22</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000528// CHECK: <key>col</key><integer>7</integer>
529// CHECK: <key>file</key><integer>0</integer>
530// CHECK: </dict>
531// CHECK: <key>ranges</key>
532// CHECK: <array>
533// CHECK: <array>
534// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000535// CHECK: <key>line</key><integer>22</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000536// CHECK: <key>col</key><integer>7</integer>
537// CHECK: <key>file</key><integer>0</integer>
538// CHECK: </dict>
539// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000540// CHECK: <key>line</key><integer>22</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000541// CHECK: <key>col</key><integer>8</integer>
542// CHECK: <key>file</key><integer>0</integer>
543// CHECK: </dict>
544// CHECK: </array>
545// CHECK: </array>
Ted Kremenek07189522012-04-04 18:11:35 +0000546// CHECK: <key>depth</key><integer>0</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000547// CHECK: <key>extended_message</key>
Ted Kremenek6ae32572011-12-20 22:00:25 +0000548// CHECK: <string>Assuming &apos;p&apos; is null</string>
Ted Kremeneke576af22009-11-24 01:33:10 +0000549// CHECK: <key>message</key>
Ted Kremenek6ae32572011-12-20 22:00:25 +0000550// CHECK: <string>Assuming &apos;p&apos; is null</string>
Ted Kremeneke576af22009-11-24 01:33:10 +0000551// CHECK: </dict>
552// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000553// CHECK: <key>kind</key><string>event</string>
554// CHECK: <key>location</key>
555// CHECK: <dict>
556// CHECK: <key>line</key><integer>22</integer>
557// CHECK: <key>col</key><integer>7</integer>
558// CHECK: <key>file</key><integer>0</integer>
559// CHECK: </dict>
560// CHECK: <key>ranges</key>
561// CHECK: <array>
562// CHECK: <array>
563// CHECK: <dict>
564// CHECK: <key>line</key><integer>22</integer>
565// CHECK: <key>col</key><integer>7</integer>
566// CHECK: <key>file</key><integer>0</integer>
567// CHECK: </dict>
568// CHECK: <dict>
569// CHECK: <key>line</key><integer>22</integer>
570// CHECK: <key>col</key><integer>8</integer>
571// CHECK: <key>file</key><integer>0</integer>
572// CHECK: </dict>
573// CHECK: </array>
574// CHECK: </array>
575// CHECK: <key>depth</key><integer>0</integer>
576// CHECK: <key>extended_message</key>
577// CHECK: <string>Assuming pointer value is null</string>
578// CHECK: <key>message</key>
579// CHECK: <string>Assuming pointer value is null</string>
580// CHECK: </dict>
581// CHECK: <dict>
Ted Kremeneke576af22009-11-24 01:33:10 +0000582// CHECK: <key>kind</key><string>control</string>
583// CHECK: <key>edges</key>
584// CHECK: <array>
585// CHECK: <dict>
586// CHECK: <key>start</key>
587// CHECK: <array>
588// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000589// CHECK: <key>line</key><integer>22</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000590// CHECK: <key>col</key><integer>7</integer>
591// CHECK: <key>file</key><integer>0</integer>
592// CHECK: </dict>
593// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000594// CHECK: <key>line</key><integer>22</integer>
Ted Kremenek7453a722012-06-05 22:00:52 +0000595// CHECK: <key>col</key><integer>7</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000596// CHECK: <key>file</key><integer>0</integer>
597// CHECK: </dict>
598// CHECK: </array>
599// CHECK: <key>end</key>
600// CHECK: <array>
601// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000602// CHECK: <key>line</key><integer>23</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000603// CHECK: <key>col</key><integer>5</integer>
604// CHECK: <key>file</key><integer>0</integer>
605// CHECK: </dict>
606// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000607// CHECK: <key>line</key><integer>23</integer>
Ted Kremenekbd613132012-04-06 22:10:18 +0000608// CHECK: <key>col</key><integer>5</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000609// CHECK: <key>file</key><integer>0</integer>
610// CHECK: </dict>
611// CHECK: </array>
612// CHECK: </dict>
613// CHECK: </array>
614// CHECK: </dict>
615// CHECK: <dict>
616// CHECK: <key>kind</key><string>event</string>
617// CHECK: <key>location</key>
618// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000619// CHECK: <key>line</key><integer>23</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000620// CHECK: <key>col</key><integer>5</integer>
621// CHECK: <key>file</key><integer>0</integer>
622// CHECK: </dict>
623// CHECK: <key>ranges</key>
624// CHECK: <array>
625// CHECK: <array>
626// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000627// CHECK: <key>line</key><integer>23</integer>
Ted Kremenek452b84d2010-03-23 01:11:38 +0000628// CHECK: <key>col</key><integer>6</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000629// CHECK: <key>file</key><integer>0</integer>
630// CHECK: </dict>
631// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000632// CHECK: <key>line</key><integer>23</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000633// CHECK: <key>col</key><integer>6</integer>
634// CHECK: <key>file</key><integer>0</integer>
635// CHECK: </dict>
636// CHECK: </array>
637// CHECK: </array>
Ted Kremenek07189522012-04-04 18:11:35 +0000638// CHECK: <key>depth</key><integer>0</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000639// CHECK: <key>extended_message</key>
Ted Kremenek452b84d2010-03-23 01:11:38 +0000640// CHECK: <string>Dereference of null pointer (loaded from variable &apos;p&apos;)</string>
Ted Kremeneke576af22009-11-24 01:33:10 +0000641// CHECK: <key>message</key>
Ted Kremenek452b84d2010-03-23 01:11:38 +0000642// CHECK: <string>Dereference of null pointer (loaded from variable &apos;p&apos;)</string>
Ted Kremeneke576af22009-11-24 01:33:10 +0000643// CHECK: </dict>
644// CHECK: </array>
Ted Kremenek452b84d2010-03-23 01:11:38 +0000645// CHECK: <key>description</key><string>Dereference of null pointer (loaded from variable &apos;p&apos;)</string>
Ted Kremeneke576af22009-11-24 01:33:10 +0000646// CHECK: <key>category</key><string>Logic error</string>
647// CHECK: <key>type</key><string>Dereference of null pointer</string>
Ted Kremenek07189522012-04-04 18:11:35 +0000648// CHECK: <key>issue_context_kind</key><string>function</string>
649// CHECK: <key>issue_context</key><string>test_null_cond</string>
Anna Zaksa64fae12012-06-08 00:04:43 +0000650// CHECK: <key>issue_hash</key><integer>2</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000651// CHECK: <key>location</key>
652// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000653// CHECK: <key>line</key><integer>23</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000654// CHECK: <key>col</key><integer>5</integer>
655// CHECK: <key>file</key><integer>0</integer>
656// CHECK: </dict>
657// CHECK: </dict>
658// CHECK: <dict>
659// CHECK: <key>path</key>
660// CHECK: <array>
661// CHECK: <dict>
662// CHECK: <key>kind</key><string>control</string>
663// CHECK: <key>edges</key>
664// CHECK: <array>
665// CHECK: <dict>
666// CHECK: <key>start</key>
667// CHECK: <array>
668// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000669// CHECK: <key>line</key><integer>28</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000670// CHECK: <key>col</key><integer>3</integer>
671// CHECK: <key>file</key><integer>0</integer>
672// CHECK: </dict>
673// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000674// CHECK: <key>line</key><integer>28</integer>
Ted Kremenek7453a722012-06-05 22:00:52 +0000675// CHECK: <key>col</key><integer>4</integer>
Ted Kremenek6ae32572011-12-20 22:00:25 +0000676// CHECK: <key>file</key><integer>0</integer>
677// CHECK: </dict>
678// CHECK: </array>
679// CHECK: <key>end</key>
680// CHECK: <array>
681// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000682// CHECK: <key>line</key><integer>28</integer>
Ted Kremenek6ae32572011-12-20 22:00:25 +0000683// CHECK: <key>col</key><integer>7</integer>
684// CHECK: <key>file</key><integer>0</integer>
685// CHECK: </dict>
686// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000687// CHECK: <key>line</key><integer>28</integer>
Ted Kremenek7453a722012-06-05 22:00:52 +0000688// CHECK: <key>col</key><integer>7</integer>
Ted Kremenek6ae32572011-12-20 22:00:25 +0000689// CHECK: <key>file</key><integer>0</integer>
690// CHECK: </dict>
691// CHECK: </array>
692// CHECK: </dict>
693// CHECK: </array>
694// CHECK: </dict>
695// CHECK: <dict>
Ted Kremenek6ae32572011-12-20 22:00:25 +0000696// CHECK: <key>kind</key><string>control</string>
697// CHECK: <key>edges</key>
698// CHECK: <array>
699// CHECK: <dict>
700// CHECK: <key>start</key>
701// CHECK: <array>
702// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000703// CHECK: <key>line</key><integer>28</integer>
Ted Kremenek6ae32572011-12-20 22:00:25 +0000704// CHECK: <key>col</key><integer>7</integer>
705// CHECK: <key>file</key><integer>0</integer>
706// CHECK: </dict>
707// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000708// CHECK: <key>line</key><integer>28</integer>
Ted Kremenek7453a722012-06-05 22:00:52 +0000709// CHECK: <key>col</key><integer>7</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000710// CHECK: <key>file</key><integer>0</integer>
711// CHECK: </dict>
712// CHECK: </array>
713// CHECK: <key>end</key>
714// CHECK: <array>
715// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000716// CHECK: <key>line</key><integer>29</integer>
Ted Kremenek6ae32572011-12-20 22:00:25 +0000717// CHECK: <key>col</key><integer>5</integer>
718// CHECK: <key>file</key><integer>0</integer>
719// CHECK: </dict>
720// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000721// CHECK: <key>line</key><integer>29</integer>
Ted Kremenek7453a722012-06-05 22:00:52 +0000722// CHECK: <key>col</key><integer>7</integer>
Ted Kremenek6ae32572011-12-20 22:00:25 +0000723// CHECK: <key>file</key><integer>0</integer>
724// CHECK: </dict>
725// CHECK: </array>
726// CHECK: </dict>
727// CHECK: </array>
728// CHECK: </dict>
729// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000730// CHECK: <key>kind</key><string>event</string>
731// CHECK: <key>location</key>
732// CHECK: <dict>
733// CHECK: <key>line</key><integer>29</integer>
734// CHECK: <key>col</key><integer>5</integer>
735// CHECK: <key>file</key><integer>0</integer>
736// CHECK: </dict>
737// CHECK: <key>ranges</key>
738// CHECK: <array>
739// CHECK: <array>
740// CHECK: <dict>
741// CHECK: <key>line</key><integer>29</integer>
742// CHECK: <key>col</key><integer>5</integer>
743// CHECK: <key>file</key><integer>0</integer>
744// CHECK: </dict>
745// CHECK: <dict>
746// CHECK: <key>line</key><integer>29</integer>
747// CHECK: <key>col</key><integer>10</integer>
748// CHECK: <key>file</key><integer>0</integer>
749// CHECK: </dict>
750// CHECK: </array>
751// CHECK: </array>
752// CHECK: <key>depth</key><integer>0</integer>
753// CHECK: <key>extended_message</key>
754// CHECK: <string>Variable &apos;p&apos; initialized to a null pointer value</string>
755// CHECK: <key>message</key>
756// CHECK: <string>Variable &apos;p&apos; initialized to a null pointer value</string>
757// CHECK: </dict>
758// CHECK: <dict>
Ted Kremenek6ae32572011-12-20 22:00:25 +0000759// CHECK: <key>kind</key><string>control</string>
760// CHECK: <key>edges</key>
761// CHECK: <array>
762// CHECK: <dict>
763// CHECK: <key>start</key>
764// CHECK: <array>
765// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000766// CHECK: <key>line</key><integer>29</integer>
Ted Kremenek6ae32572011-12-20 22:00:25 +0000767// CHECK: <key>col</key><integer>5</integer>
768// CHECK: <key>file</key><integer>0</integer>
769// CHECK: </dict>
770// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000771// CHECK: <key>line</key><integer>29</integer>
Ted Kremenek7453a722012-06-05 22:00:52 +0000772// CHECK: <key>col</key><integer>7</integer>
Ted Kremenek6ae32572011-12-20 22:00:25 +0000773// CHECK: <key>file</key><integer>0</integer>
774// CHECK: </dict>
775// CHECK: </array>
776// CHECK: <key>end</key>
777// CHECK: <array>
778// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000779// CHECK: <key>line</key><integer>30</integer>
Ted Kremenek6ae32572011-12-20 22:00:25 +0000780// CHECK: <key>col</key><integer>5</integer>
781// CHECK: <key>file</key><integer>0</integer>
782// CHECK: </dict>
783// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000784// CHECK: <key>line</key><integer>30</integer>
Ted Kremenekbd613132012-04-06 22:10:18 +0000785// CHECK: <key>col</key><integer>5</integer>
Ted Kremenek6ae32572011-12-20 22:00:25 +0000786// CHECK: <key>file</key><integer>0</integer>
787// CHECK: </dict>
788// CHECK: </array>
789// CHECK: </dict>
790// CHECK: </array>
791// CHECK: </dict>
792// CHECK: <dict>
793// CHECK: <key>kind</key><string>event</string>
794// CHECK: <key>location</key>
795// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000796// CHECK: <key>line</key><integer>30</integer>
Ted Kremenek6ae32572011-12-20 22:00:25 +0000797// CHECK: <key>col</key><integer>5</integer>
798// CHECK: <key>file</key><integer>0</integer>
799// CHECK: </dict>
800// CHECK: <key>ranges</key>
801// CHECK: <array>
802// CHECK: <array>
803// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000804// CHECK: <key>line</key><integer>30</integer>
Ted Kremenek6ae32572011-12-20 22:00:25 +0000805// CHECK: <key>col</key><integer>6</integer>
806// CHECK: <key>file</key><integer>0</integer>
807// CHECK: </dict>
808// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000809// CHECK: <key>line</key><integer>30</integer>
Ted Kremenek6ae32572011-12-20 22:00:25 +0000810// CHECK: <key>col</key><integer>6</integer>
811// CHECK: <key>file</key><integer>0</integer>
812// CHECK: </dict>
813// CHECK: </array>
814// CHECK: </array>
Ted Kremenek07189522012-04-04 18:11:35 +0000815// CHECK: <key>depth</key><integer>0</integer>
Ted Kremenek6ae32572011-12-20 22:00:25 +0000816// CHECK: <key>extended_message</key>
817// CHECK: <string>Dereference of null pointer (loaded from variable &apos;p&apos;)</string>
818// CHECK: <key>message</key>
819// CHECK: <string>Dereference of null pointer (loaded from variable &apos;p&apos;)</string>
820// CHECK: </dict>
821// CHECK: </array>
822// CHECK: <key>description</key><string>Dereference of null pointer (loaded from variable &apos;p&apos;)</string>
823// CHECK: <key>category</key><string>Logic error</string>
824// CHECK: <key>type</key><string>Dereference of null pointer</string>
Ted Kremenek07189522012-04-04 18:11:35 +0000825// CHECK: <key>issue_context_kind</key><string>function</string>
826// CHECK: <key>issue_context</key><string>test_null_cond_transitive</string>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000827// CHECK: <key>issue_hash</key><integer>3</integer>
Ted Kremenek6ae32572011-12-20 22:00:25 +0000828// CHECK: <key>location</key>
829// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000830// CHECK: <key>line</key><integer>30</integer>
Ted Kremenek6ae32572011-12-20 22:00:25 +0000831// CHECK: <key>col</key><integer>5</integer>
832// CHECK: <key>file</key><integer>0</integer>
833// CHECK: </dict>
834// CHECK: </dict>
835// CHECK: <dict>
836// CHECK: <key>path</key>
837// CHECK: <array>
838// CHECK: <dict>
839// CHECK: <key>kind</key><string>control</string>
840// CHECK: <key>edges</key>
841// CHECK: <array>
842// CHECK: <dict>
843// CHECK: <key>start</key>
844// CHECK: <array>
845// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000846// CHECK: <key>line</key><integer>35</integer>
Ted Kremenek6ae32572011-12-20 22:00:25 +0000847// CHECK: <key>col</key><integer>3</integer>
848// CHECK: <key>file</key><integer>0</integer>
849// CHECK: </dict>
850// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000851// CHECK: <key>line</key><integer>35</integer>
Ted Kremenek7453a722012-06-05 22:00:52 +0000852// CHECK: <key>col</key><integer>8</integer>
Ted Kremenek6ae32572011-12-20 22:00:25 +0000853// CHECK: <key>file</key><integer>0</integer>
854// CHECK: </dict>
855// CHECK: </array>
856// CHECK: <key>end</key>
857// CHECK: <array>
858// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000859// CHECK: <key>line</key><integer>35</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000860// CHECK: <key>col</key><integer>10</integer>
861// CHECK: <key>file</key><integer>0</integer>
862// CHECK: </dict>
863// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000864// CHECK: <key>line</key><integer>35</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000865// CHECK: <key>col</key><integer>10</integer>
866// CHECK: <key>file</key><integer>0</integer>
867// CHECK: </dict>
868// CHECK: </array>
869// CHECK: </dict>
870// CHECK: </array>
871// CHECK: </dict>
872// CHECK: <dict>
873// CHECK: <key>kind</key><string>control</string>
874// CHECK: <key>edges</key>
875// CHECK: <array>
876// CHECK: <dict>
877// CHECK: <key>start</key>
878// CHECK: <array>
879// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000880// CHECK: <key>line</key><integer>35</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000881// CHECK: <key>col</key><integer>10</integer>
882// CHECK: <key>file</key><integer>0</integer>
883// CHECK: </dict>
884// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000885// CHECK: <key>line</key><integer>35</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000886// CHECK: <key>col</key><integer>10</integer>
887// CHECK: <key>file</key><integer>0</integer>
888// CHECK: </dict>
889// CHECK: </array>
890// CHECK: <key>end</key>
891// CHECK: <array>
892// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000893// CHECK: <key>line</key><integer>37</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000894// CHECK: <key>col</key><integer>3</integer>
895// CHECK: <key>file</key><integer>0</integer>
896// CHECK: </dict>
897// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000898// CHECK: <key>line</key><integer>37</integer>
Ted Kremenekbd613132012-04-06 22:10:18 +0000899// CHECK: <key>col</key><integer>3</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000900// CHECK: <key>file</key><integer>0</integer>
901// CHECK: </dict>
902// CHECK: </array>
903// CHECK: </dict>
904// CHECK: </array>
905// CHECK: </dict>
906// CHECK: <dict>
907// CHECK: <key>kind</key><string>event</string>
908// CHECK: <key>location</key>
909// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000910// CHECK: <key>line</key><integer>37</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000911// CHECK: <key>col</key><integer>3</integer>
912// CHECK: <key>file</key><integer>0</integer>
913// CHECK: </dict>
914// CHECK: <key>ranges</key>
915// CHECK: <array>
916// CHECK: <array>
917// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000918// CHECK: <key>line</key><integer>37</integer>
Ted Kremenek6ae32572011-12-20 22:00:25 +0000919// CHECK: <key>col</key><integer>7</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000920// CHECK: <key>file</key><integer>0</integer>
921// CHECK: </dict>
922// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000923// CHECK: <key>line</key><integer>37</integer>
Ted Kremenek6ae32572011-12-20 22:00:25 +0000924// CHECK: <key>col</key><integer>7</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000925// CHECK: <key>file</key><integer>0</integer>
926// CHECK: </dict>
927// CHECK: </array>
928// CHECK: </array>
Ted Kremenek07189522012-04-04 18:11:35 +0000929// CHECK: <key>depth</key><integer>0</integer>
Ted Kremeneke576af22009-11-24 01:33:10 +0000930// CHECK: <key>extended_message</key>
Ted Kremenek6ae32572011-12-20 22:00:25 +0000931// CHECK: <string>Dereference of null pointer (loaded from field &apos;p&apos;)</string>
Ted Kremenekc6ea5d42009-11-17 02:31:39 +0000932// CHECK: <key>message</key>
Ted Kremenek6ae32572011-12-20 22:00:25 +0000933// CHECK: <string>Dereference of null pointer (loaded from field &apos;p&apos;)</string>
Ted Kremenekc6ea5d42009-11-17 02:31:39 +0000934// CHECK: </dict>
935// CHECK: </array>
Ted Kremenek6ae32572011-12-20 22:00:25 +0000936// CHECK: <key>description</key><string>Dereference of null pointer (loaded from field &apos;p&apos;)</string>
Ted Kremenekc6ea5d42009-11-17 02:31:39 +0000937// CHECK: <key>category</key><string>Logic error</string>
Ted Kremeneke576af22009-11-24 01:33:10 +0000938// CHECK: <key>type</key><string>Dereference of null pointer</string>
Ted Kremenek07189522012-04-04 18:11:35 +0000939// CHECK: <key>issue_context_kind</key><string>function</string>
940// CHECK: <key>issue_context</key><string>test_null_field</string>
Anna Zaksa64fae12012-06-08 00:04:43 +0000941// CHECK: <key>issue_hash</key><integer>3</integer>
Ted Kremenekc6ea5d42009-11-17 02:31:39 +0000942// CHECK: <key>location</key>
943// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000944// CHECK: <key>line</key><integer>37</integer>
Ted Kremenek6ae32572011-12-20 22:00:25 +0000945// CHECK: <key>col</key><integer>3</integer>
946// CHECK: <key>file</key><integer>0</integer>
947// CHECK: </dict>
948// CHECK: </dict>
949// CHECK: <dict>
950// CHECK: <key>path</key>
951// CHECK: <array>
952// CHECK: <dict>
953// CHECK: <key>kind</key><string>control</string>
954// CHECK: <key>edges</key>
955// CHECK: <array>
956// CHECK: <dict>
957// CHECK: <key>start</key>
958// CHECK: <array>
959// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000960// CHECK: <key>line</key><integer>42</integer>
Ted Kremenek6ae32572011-12-20 22:00:25 +0000961// CHECK: <key>col</key><integer>3</integer>
962// CHECK: <key>file</key><integer>0</integer>
963// CHECK: </dict>
964// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000965// CHECK: <key>line</key><integer>42</integer>
Ted Kremenek7453a722012-06-05 22:00:52 +0000966// CHECK: <key>col</key><integer>4</integer>
Ted Kremenek6ae32572011-12-20 22:00:25 +0000967// CHECK: <key>file</key><integer>0</integer>
968// CHECK: </dict>
969// CHECK: </array>
970// CHECK: <key>end</key>
971// CHECK: <array>
972// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000973// CHECK: <key>line</key><integer>42</integer>
Ted Kremenek6ae32572011-12-20 22:00:25 +0000974// CHECK: <key>col</key><integer>7</integer>
975// CHECK: <key>file</key><integer>0</integer>
976// CHECK: </dict>
977// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000978// CHECK: <key>line</key><integer>42</integer>
Ted Kremenek6ae32572011-12-20 22:00:25 +0000979// CHECK: <key>col</key><integer>7</integer>
980// CHECK: <key>file</key><integer>0</integer>
981// CHECK: </dict>
982// CHECK: </array>
983// CHECK: </dict>
984// CHECK: </array>
985// CHECK: </dict>
986// CHECK: <dict>
Ted Kremenek6ae32572011-12-20 22:00:25 +0000987// CHECK: <key>kind</key><string>control</string>
988// CHECK: <key>edges</key>
989// CHECK: <array>
990// CHECK: <dict>
991// CHECK: <key>start</key>
992// CHECK: <array>
993// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000994// CHECK: <key>line</key><integer>42</integer>
Ted Kremenek6ae32572011-12-20 22:00:25 +0000995// CHECK: <key>col</key><integer>7</integer>
996// CHECK: <key>file</key><integer>0</integer>
997// CHECK: </dict>
998// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +0000999// CHECK: <key>line</key><integer>42</integer>
Ted Kremenek6ae32572011-12-20 22:00:25 +00001000// CHECK: <key>col</key><integer>7</integer>
1001// CHECK: <key>file</key><integer>0</integer>
1002// CHECK: </dict>
1003// CHECK: </array>
1004// CHECK: <key>end</key>
1005// CHECK: <array>
1006// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001007// CHECK: <key>line</key><integer>45</integer>
Ted Kremenek6ae32572011-12-20 22:00:25 +00001008// CHECK: <key>col</key><integer>3</integer>
1009// CHECK: <key>file</key><integer>0</integer>
1010// CHECK: </dict>
1011// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001012// CHECK: <key>line</key><integer>45</integer>
Ted Kremenek7453a722012-06-05 22:00:52 +00001013// CHECK: <key>col</key><integer>4</integer>
Ted Kremenek6ae32572011-12-20 22:00:25 +00001014// CHECK: <key>file</key><integer>0</integer>
1015// CHECK: </dict>
1016// CHECK: </array>
1017// CHECK: </dict>
1018// CHECK: </array>
1019// CHECK: </dict>
1020// CHECK: <dict>
1021// CHECK: <key>kind</key><string>control</string>
1022// CHECK: <key>edges</key>
1023// CHECK: <array>
1024// CHECK: <dict>
1025// CHECK: <key>start</key>
1026// CHECK: <array>
1027// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001028// CHECK: <key>line</key><integer>45</integer>
Ted Kremenek6ae32572011-12-20 22:00:25 +00001029// CHECK: <key>col</key><integer>3</integer>
1030// CHECK: <key>file</key><integer>0</integer>
1031// CHECK: </dict>
1032// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001033// CHECK: <key>line</key><integer>45</integer>
Ted Kremenek7453a722012-06-05 22:00:52 +00001034// CHECK: <key>col</key><integer>4</integer>
Ted Kremenek6ae32572011-12-20 22:00:25 +00001035// CHECK: <key>file</key><integer>0</integer>
1036// CHECK: </dict>
1037// CHECK: </array>
1038// CHECK: <key>end</key>
1039// CHECK: <array>
1040// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001041// CHECK: <key>line</key><integer>45</integer>
Ted Kremenek6ae32572011-12-20 22:00:25 +00001042// CHECK: <key>col</key><integer>7</integer>
1043// CHECK: <key>file</key><integer>0</integer>
1044// CHECK: </dict>
1045// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001046// CHECK: <key>line</key><integer>45</integer>
Ted Kremenek6ae32572011-12-20 22:00:25 +00001047// CHECK: <key>col</key><integer>7</integer>
1048// CHECK: <key>file</key><integer>0</integer>
1049// CHECK: </dict>
1050// CHECK: </array>
1051// CHECK: </dict>
1052// CHECK: </array>
1053// CHECK: </dict>
1054// CHECK: <dict>
Ted Kremenek6ae32572011-12-20 22:00:25 +00001055// CHECK: <key>kind</key><string>control</string>
1056// CHECK: <key>edges</key>
1057// CHECK: <array>
1058// CHECK: <dict>
1059// CHECK: <key>start</key>
1060// CHECK: <array>
1061// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001062// CHECK: <key>line</key><integer>45</integer>
Ted Kremenek76aadc32012-03-09 01:13:14 +00001063// CHECK: <key>col</key><integer>7</integer>
Ted Kremenek6ae32572011-12-20 22:00:25 +00001064// CHECK: <key>file</key><integer>0</integer>
1065// CHECK: </dict>
1066// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001067// CHECK: <key>line</key><integer>45</integer>
Ted Kremenek76aadc32012-03-09 01:13:14 +00001068// CHECK: <key>col</key><integer>7</integer>
Ted Kremenek6ae32572011-12-20 22:00:25 +00001069// CHECK: <key>file</key><integer>0</integer>
1070// CHECK: </dict>
1071// CHECK: </array>
1072// CHECK: <key>end</key>
1073// CHECK: <array>
1074// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001075// CHECK: <key>line</key><integer>48</integer>
Ted Kremenek6ae32572011-12-20 22:00:25 +00001076// CHECK: <key>col</key><integer>3</integer>
1077// CHECK: <key>file</key><integer>0</integer>
1078// CHECK: </dict>
1079// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001080// CHECK: <key>line</key><integer>48</integer>
Ted Kremenek7453a722012-06-05 22:00:52 +00001081// CHECK: <key>col</key><integer>5</integer>
Ted Kremenek76aadc32012-03-09 01:13:14 +00001082// CHECK: <key>file</key><integer>0</integer>
1083// CHECK: </dict>
1084// CHECK: </array>
1085// CHECK: </dict>
1086// CHECK: </array>
1087// CHECK: </dict>
1088// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001089// CHECK: <key>kind</key><string>event</string>
1090// CHECK: <key>location</key>
1091// CHECK: <dict>
1092// CHECK: <key>line</key><integer>48</integer>
1093// CHECK: <key>col</key><integer>3</integer>
1094// CHECK: <key>file</key><integer>0</integer>
1095// CHECK: </dict>
1096// CHECK: <key>ranges</key>
1097// CHECK: <array>
1098// CHECK: <array>
1099// CHECK: <dict>
1100// CHECK: <key>line</key><integer>48</integer>
1101// CHECK: <key>col</key><integer>3</integer>
1102// CHECK: <key>file</key><integer>0</integer>
1103// CHECK: </dict>
1104// CHECK: <dict>
1105// CHECK: <key>line</key><integer>48</integer>
1106// CHECK: <key>col</key><integer>8</integer>
1107// CHECK: <key>file</key><integer>0</integer>
1108// CHECK: </dict>
1109// CHECK: </array>
1110// CHECK: </array>
1111// CHECK: <key>depth</key><integer>0</integer>
1112// CHECK: <key>extended_message</key>
1113// CHECK: <string>Variable &apos;p&apos; initialized to a null pointer value</string>
1114// CHECK: <key>message</key>
1115// CHECK: <string>Variable &apos;p&apos; initialized to a null pointer value</string>
1116// CHECK: </dict>
1117// CHECK: <dict>
Ted Kremenek76aadc32012-03-09 01:13:14 +00001118// CHECK: <key>kind</key><string>control</string>
1119// CHECK: <key>edges</key>
1120// CHECK: <array>
1121// CHECK: <dict>
1122// CHECK: <key>start</key>
1123// CHECK: <array>
1124// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001125// CHECK: <key>line</key><integer>48</integer>
Ted Kremenek76aadc32012-03-09 01:13:14 +00001126// CHECK: <key>col</key><integer>3</integer>
1127// CHECK: <key>file</key><integer>0</integer>
1128// CHECK: </dict>
1129// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001130// CHECK: <key>line</key><integer>48</integer>
Ted Kremenek7453a722012-06-05 22:00:52 +00001131// CHECK: <key>col</key><integer>5</integer>
Ted Kremenek76aadc32012-03-09 01:13:14 +00001132// CHECK: <key>file</key><integer>0</integer>
1133// CHECK: </dict>
1134// CHECK: </array>
1135// CHECK: <key>end</key>
1136// CHECK: <array>
1137// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001138// CHECK: <key>line</key><integer>49</integer>
Ted Kremenek76aadc32012-03-09 01:13:14 +00001139// CHECK: <key>col</key><integer>3</integer>
1140// CHECK: <key>file</key><integer>0</integer>
1141// CHECK: </dict>
1142// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001143// CHECK: <key>line</key><integer>49</integer>
Ted Kremenekbd613132012-04-06 22:10:18 +00001144// CHECK: <key>col</key><integer>3</integer>
Ted Kremenek6ae32572011-12-20 22:00:25 +00001145// CHECK: <key>file</key><integer>0</integer>
1146// CHECK: </dict>
1147// CHECK: </array>
1148// CHECK: </dict>
1149// CHECK: </array>
1150// CHECK: </dict>
1151// CHECK: <dict>
1152// CHECK: <key>kind</key><string>event</string>
1153// CHECK: <key>location</key>
1154// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001155// CHECK: <key>line</key><integer>49</integer>
Ted Kremenek6ae32572011-12-20 22:00:25 +00001156// CHECK: <key>col</key><integer>3</integer>
1157// CHECK: <key>file</key><integer>0</integer>
1158// CHECK: </dict>
1159// CHECK: <key>ranges</key>
1160// CHECK: <array>
1161// CHECK: <array>
1162// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001163// CHECK: <key>line</key><integer>49</integer>
Ted Kremenek6ae32572011-12-20 22:00:25 +00001164// CHECK: <key>col</key><integer>4</integer>
1165// CHECK: <key>file</key><integer>0</integer>
1166// CHECK: </dict>
1167// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001168// CHECK: <key>line</key><integer>49</integer>
Ted Kremenek6ae32572011-12-20 22:00:25 +00001169// CHECK: <key>col</key><integer>4</integer>
1170// CHECK: <key>file</key><integer>0</integer>
1171// CHECK: </dict>
1172// CHECK: </array>
1173// CHECK: </array>
Ted Kremenek07189522012-04-04 18:11:35 +00001174// CHECK: <key>depth</key><integer>0</integer>
Ted Kremenek6ae32572011-12-20 22:00:25 +00001175// CHECK: <key>extended_message</key>
1176// CHECK: <string>Dereference of null pointer (loaded from variable &apos;p&apos;)</string>
1177// CHECK: <key>message</key>
1178// CHECK: <string>Dereference of null pointer (loaded from variable &apos;p&apos;)</string>
1179// CHECK: </dict>
1180// CHECK: </array>
1181// CHECK: <key>description</key><string>Dereference of null pointer (loaded from variable &apos;p&apos;)</string>
1182// CHECK: <key>category</key><string>Logic error</string>
1183// CHECK: <key>type</key><string>Dereference of null pointer</string>
Ted Kremenek07189522012-04-04 18:11:35 +00001184// CHECK: <key>issue_context_kind</key><string>function</string>
1185// CHECK: <key>issue_context</key><string>test_assumptions</string>
Anna Zaksa64fae12012-06-08 00:04:43 +00001186// CHECK: <key>issue_hash</key><integer>8</integer>
Ted Kremenek6ae32572011-12-20 22:00:25 +00001187// CHECK: <key>location</key>
1188// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001189// CHECK: <key>line</key><integer>49</integer>
Ted Kremenekc6ea5d42009-11-17 02:31:39 +00001190// CHECK: <key>col</key><integer>3</integer>
1191// CHECK: <key>file</key><integer>0</integer>
1192// CHECK: </dict>
1193// CHECK: </dict>
Ted Kremenekd1247c52012-01-04 08:18:09 +00001194// CHECK: <dict>
1195// CHECK: <key>path</key>
1196// CHECK: <array>
1197// CHECK: <dict>
1198// CHECK: <key>kind</key><string>control</string>
1199// CHECK: <key>edges</key>
1200// CHECK: <array>
1201// CHECK: <dict>
1202// CHECK: <key>start</key>
1203// CHECK: <array>
1204// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001205// CHECK: <key>line</key><integer>54</integer>
Ted Kremenekd1247c52012-01-04 08:18:09 +00001206// CHECK: <key>col</key><integer>3</integer>
1207// CHECK: <key>file</key><integer>0</integer>
1208// CHECK: </dict>
1209// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001210// CHECK: <key>line</key><integer>54</integer>
Ted Kremenek7453a722012-06-05 22:00:52 +00001211// CHECK: <key>col</key><integer>5</integer>
Ted Kremenekd1247c52012-01-04 08:18:09 +00001212// CHECK: <key>file</key><integer>0</integer>
1213// CHECK: </dict>
1214// CHECK: </array>
1215// CHECK: <key>end</key>
1216// CHECK: <array>
1217// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001218// CHECK: <key>line</key><integer>55</integer>
Ted Kremenekd1247c52012-01-04 08:18:09 +00001219// CHECK: <key>col</key><integer>3</integer>
1220// CHECK: <key>file</key><integer>0</integer>
1221// CHECK: </dict>
1222// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001223// CHECK: <key>line</key><integer>55</integer>
Ted Kremenek7453a722012-06-05 22:00:52 +00001224// CHECK: <key>col</key><integer>4</integer>
Ted Kremenekd1247c52012-01-04 08:18:09 +00001225// CHECK: <key>file</key><integer>0</integer>
1226// CHECK: </dict>
1227// CHECK: </array>
1228// CHECK: </dict>
1229// CHECK: </array>
1230// CHECK: </dict>
1231// CHECK: <dict>
1232// CHECK: <key>kind</key><string>control</string>
1233// CHECK: <key>edges</key>
1234// CHECK: <array>
1235// CHECK: <dict>
1236// CHECK: <key>start</key>
1237// CHECK: <array>
1238// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001239// CHECK: <key>line</key><integer>55</integer>
Ted Kremenekd1247c52012-01-04 08:18:09 +00001240// CHECK: <key>col</key><integer>3</integer>
1241// CHECK: <key>file</key><integer>0</integer>
1242// CHECK: </dict>
1243// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001244// CHECK: <key>line</key><integer>55</integer>
Ted Kremenek7453a722012-06-05 22:00:52 +00001245// CHECK: <key>col</key><integer>4</integer>
Ted Kremenekd1247c52012-01-04 08:18:09 +00001246// CHECK: <key>file</key><integer>0</integer>
1247// CHECK: </dict>
1248// CHECK: </array>
1249// CHECK: <key>end</key>
1250// CHECK: <array>
1251// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001252// CHECK: <key>line</key><integer>55</integer>
Ted Kremenekd1247c52012-01-04 08:18:09 +00001253// CHECK: <key>col</key><integer>7</integer>
1254// CHECK: <key>file</key><integer>0</integer>
1255// CHECK: </dict>
1256// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001257// CHECK: <key>line</key><integer>55</integer>
Ted Kremenekd1247c52012-01-04 08:18:09 +00001258// CHECK: <key>col</key><integer>7</integer>
1259// CHECK: <key>file</key><integer>0</integer>
1260// CHECK: </dict>
1261// CHECK: </array>
1262// CHECK: </dict>
1263// CHECK: </array>
1264// CHECK: </dict>
1265// CHECK: <dict>
1266// CHECK: <key>kind</key><string>event</string>
1267// CHECK: <key>location</key>
1268// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001269// CHECK: <key>line</key><integer>55</integer>
Ted Kremenekd1247c52012-01-04 08:18:09 +00001270// CHECK: <key>col</key><integer>7</integer>
1271// CHECK: <key>file</key><integer>0</integer>
1272// CHECK: </dict>
1273// CHECK: <key>ranges</key>
1274// CHECK: <array>
1275// CHECK: <array>
1276// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001277// CHECK: <key>line</key><integer>55</integer>
Ted Kremenekd1247c52012-01-04 08:18:09 +00001278// CHECK: <key>col</key><integer>7</integer>
1279// CHECK: <key>file</key><integer>0</integer>
1280// CHECK: </dict>
1281// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001282// CHECK: <key>line</key><integer>55</integer>
Ted Kremenekd1247c52012-01-04 08:18:09 +00001283// CHECK: <key>col</key><integer>7</integer>
1284// CHECK: <key>file</key><integer>0</integer>
1285// CHECK: </dict>
1286// CHECK: </array>
1287// CHECK: </array>
Ted Kremenek07189522012-04-04 18:11:35 +00001288// CHECK: <key>depth</key><integer>0</integer>
Ted Kremenekd1247c52012-01-04 08:18:09 +00001289// CHECK: <key>extended_message</key>
1290// CHECK: <string>Assuming &apos;p&apos; is null</string>
1291// CHECK: <key>message</key>
1292// CHECK: <string>Assuming &apos;p&apos; is null</string>
1293// CHECK: </dict>
1294// CHECK: <dict>
1295// CHECK: <key>kind</key><string>control</string>
1296// CHECK: <key>edges</key>
1297// CHECK: <array>
1298// CHECK: <dict>
1299// CHECK: <key>start</key>
1300// CHECK: <array>
1301// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001302// CHECK: <key>line</key><integer>55</integer>
Ted Kremenekd1247c52012-01-04 08:18:09 +00001303// CHECK: <key>col</key><integer>7</integer>
1304// CHECK: <key>file</key><integer>0</integer>
1305// CHECK: </dict>
1306// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001307// CHECK: <key>line</key><integer>55</integer>
Ted Kremenekd1247c52012-01-04 08:18:09 +00001308// CHECK: <key>col</key><integer>7</integer>
1309// CHECK: <key>file</key><integer>0</integer>
1310// CHECK: </dict>
1311// CHECK: </array>
1312// CHECK: <key>end</key>
1313// CHECK: <array>
1314// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001315// CHECK: <key>line</key><integer>57</integer>
Ted Kremenekd1247c52012-01-04 08:18:09 +00001316// CHECK: <key>col</key><integer>3</integer>
1317// CHECK: <key>file</key><integer>0</integer>
1318// CHECK: </dict>
1319// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001320// CHECK: <key>line</key><integer>57</integer>
Ted Kremenek7453a722012-06-05 22:00:52 +00001321// CHECK: <key>col</key><integer>8</integer>
Ted Kremenekd1247c52012-01-04 08:18:09 +00001322// CHECK: <key>file</key><integer>0</integer>
1323// CHECK: </dict>
1324// CHECK: </array>
1325// CHECK: </dict>
1326// CHECK: </array>
1327// CHECK: </dict>
1328// CHECK: <dict>
1329// CHECK: <key>kind</key><string>control</string>
1330// CHECK: <key>edges</key>
1331// CHECK: <array>
1332// CHECK: <dict>
1333// CHECK: <key>start</key>
1334// CHECK: <array>
1335// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001336// CHECK: <key>line</key><integer>57</integer>
Ted Kremenekd1247c52012-01-04 08:18:09 +00001337// CHECK: <key>col</key><integer>3</integer>
1338// CHECK: <key>file</key><integer>0</integer>
1339// CHECK: </dict>
1340// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001341// CHECK: <key>line</key><integer>57</integer>
Ted Kremenek7453a722012-06-05 22:00:52 +00001342// CHECK: <key>col</key><integer>8</integer>
Ted Kremenekd1247c52012-01-04 08:18:09 +00001343// CHECK: <key>file</key><integer>0</integer>
1344// CHECK: </dict>
1345// CHECK: </array>
1346// CHECK: <key>end</key>
1347// CHECK: <array>
1348// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001349// CHECK: <key>line</key><integer>57</integer>
Ted Kremenekd1247c52012-01-04 08:18:09 +00001350// CHECK: <key>col</key><integer>10</integer>
1351// CHECK: <key>file</key><integer>0</integer>
1352// CHECK: </dict>
1353// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001354// CHECK: <key>line</key><integer>57</integer>
Ted Kremenek7453a722012-06-05 22:00:52 +00001355// CHECK: <key>col</key><integer>10</integer>
Ted Kremenekd1247c52012-01-04 08:18:09 +00001356// CHECK: <key>file</key><integer>0</integer>
1357// CHECK: </dict>
1358// CHECK: </array>
1359// CHECK: </dict>
1360// CHECK: </array>
1361// CHECK: </dict>
1362// CHECK: <dict>
1363// CHECK: <key>kind</key><string>event</string>
1364// CHECK: <key>location</key>
1365// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001366// CHECK: <key>line</key><integer>57</integer>
Ted Kremenekd1247c52012-01-04 08:18:09 +00001367// CHECK: <key>col</key><integer>10</integer>
1368// CHECK: <key>file</key><integer>0</integer>
1369// CHECK: </dict>
1370// CHECK: <key>ranges</key>
1371// CHECK: <array>
1372// CHECK: <array>
1373// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001374// CHECK: <key>line</key><integer>57</integer>
Ted Kremenekd1247c52012-01-04 08:18:09 +00001375// CHECK: <key>col</key><integer>11</integer>
1376// CHECK: <key>file</key><integer>0</integer>
1377// CHECK: </dict>
1378// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001379// CHECK: <key>line</key><integer>57</integer>
Ted Kremenekd1247c52012-01-04 08:18:09 +00001380// CHECK: <key>col</key><integer>11</integer>
1381// CHECK: <key>file</key><integer>0</integer>
1382// CHECK: </dict>
1383// CHECK: </array>
1384// CHECK: </array>
Ted Kremenek07189522012-04-04 18:11:35 +00001385// CHECK: <key>depth</key><integer>0</integer>
Ted Kremenekd1247c52012-01-04 08:18:09 +00001386// CHECK: <key>extended_message</key>
1387// CHECK: <string>Dereference of null pointer (loaded from variable &apos;p&apos;)</string>
1388// CHECK: <key>message</key>
1389// CHECK: <string>Dereference of null pointer (loaded from variable &apos;p&apos;)</string>
1390// CHECK: </dict>
1391// CHECK: </array>
1392// CHECK: <key>description</key><string>Dereference of null pointer (loaded from variable &apos;p&apos;)</string>
1393// CHECK: <key>category</key><string>Logic error</string>
1394// CHECK: <key>type</key><string>Dereference of null pointer</string>
Ted Kremenek07189522012-04-04 18:11:35 +00001395// CHECK: <key>issue_context_kind</key><string>function</string>
1396// CHECK: <key>issue_context</key><string>test_cond_assign</string>
Anna Zaksa64fae12012-06-08 00:04:43 +00001397// CHECK: <key>issue_hash</key><integer>4</integer>
Ted Kremenekd1247c52012-01-04 08:18:09 +00001398// CHECK: <key>location</key>
1399// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001400// CHECK: <key>line</key><integer>57</integer>
Ted Kremenekd1247c52012-01-04 08:18:09 +00001401// CHECK: <key>col</key><integer>10</integer>
1402// CHECK: <key>file</key><integer>0</integer>
1403// CHECK: </dict>
1404// CHECK: </dict>
Ted Kremeneke215ba12012-02-18 22:02:57 +00001405// CHECK: <dict>
1406// CHECK: <key>path</key>
1407// CHECK: <array>
1408// CHECK: <dict>
1409// CHECK: <key>kind</key><string>control</string>
1410// CHECK: <key>edges</key>
1411// CHECK: <array>
1412// CHECK: <dict>
1413// CHECK: <key>start</key>
1414// CHECK: <array>
1415// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001416// CHECK: <key>line</key><integer>74</integer>
Ted Kremeneke215ba12012-02-18 22:02:57 +00001417// CHECK: <key>col</key><integer>3</integer>
1418// CHECK: <key>file</key><integer>0</integer>
1419// CHECK: </dict>
1420// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001421// CHECK: <key>line</key><integer>74</integer>
Ted Kremenek7453a722012-06-05 22:00:52 +00001422// CHECK: <key>col</key><integer>4</integer>
Ted Kremeneke215ba12012-02-18 22:02:57 +00001423// CHECK: <key>file</key><integer>0</integer>
1424// CHECK: </dict>
1425// CHECK: </array>
1426// CHECK: <key>end</key>
1427// CHECK: <array>
1428// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001429// CHECK: <key>line</key><integer>75</integer>
1430// CHECK: <key>col</key><integer>5</integer>
Ted Kremeneke215ba12012-02-18 22:02:57 +00001431// CHECK: <key>file</key><integer>0</integer>
1432// CHECK: </dict>
1433// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001434// CHECK: <key>line</key><integer>75</integer>
Ted Kremeneke215ba12012-02-18 22:02:57 +00001435// CHECK: <key>col</key><integer>7</integer>
1436// CHECK: <key>file</key><integer>0</integer>
1437// CHECK: </dict>
1438// CHECK: </array>
1439// CHECK: </dict>
1440// CHECK: </array>
1441// CHECK: </dict>
1442// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001443// CHECK: <key>kind</key><string>event</string>
1444// CHECK: <key>location</key>
1445// CHECK: <dict>
1446// CHECK: <key>line</key><integer>75</integer>
1447// CHECK: <key>col</key><integer>5</integer>
1448// CHECK: <key>file</key><integer>0</integer>
1449// CHECK: </dict>
1450// CHECK: <key>ranges</key>
1451// CHECK: <array>
1452// CHECK: <array>
1453// CHECK: <dict>
1454// CHECK: <key>line</key><integer>75</integer>
1455// CHECK: <key>col</key><integer>5</integer>
1456// CHECK: <key>file</key><integer>0</integer>
1457// CHECK: </dict>
1458// CHECK: <dict>
1459// CHECK: <key>line</key><integer>75</integer>
1460// CHECK: <key>col</key><integer>10</integer>
1461// CHECK: <key>file</key><integer>0</integer>
1462// CHECK: </dict>
1463// CHECK: </array>
1464// CHECK: </array>
1465// CHECK: <key>depth</key><integer>0</integer>
1466// CHECK: <key>extended_message</key>
1467// CHECK: <string>Variable &apos;p&apos; initialized to a null pointer value</string>
1468// CHECK: <key>message</key>
1469// CHECK: <string>Variable &apos;p&apos; initialized to a null pointer value</string>
1470// CHECK: </dict>
1471// CHECK: <dict>
Ted Kremeneke215ba12012-02-18 22:02:57 +00001472// CHECK: <key>kind</key><string>control</string>
1473// CHECK: <key>edges</key>
1474// CHECK: <array>
1475// CHECK: <dict>
1476// CHECK: <key>start</key>
1477// CHECK: <array>
1478// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001479// CHECK: <key>line</key><integer>75</integer>
1480// CHECK: <key>col</key><integer>5</integer>
Ted Kremeneke215ba12012-02-18 22:02:57 +00001481// CHECK: <key>file</key><integer>0</integer>
1482// CHECK: </dict>
1483// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001484// CHECK: <key>line</key><integer>75</integer>
Ted Kremeneke215ba12012-02-18 22:02:57 +00001485// CHECK: <key>col</key><integer>7</integer>
1486// CHECK: <key>file</key><integer>0</integer>
1487// CHECK: </dict>
1488// CHECK: </array>
1489// CHECK: <key>end</key>
1490// CHECK: <array>
1491// CHECK: <dict>
Ted Kremenek76aadc32012-03-09 01:13:14 +00001492// CHECK: <key>line</key><integer>76</integer>
Ted Kremeneke215ba12012-02-18 22:02:57 +00001493// CHECK: <key>col</key><integer>5</integer>
1494// CHECK: <key>file</key><integer>0</integer>
1495// CHECK: </dict>
1496// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001497// CHECK: <key>line</key><integer>76</integer>
Ted Kremenekbd613132012-04-06 22:10:18 +00001498// CHECK: <key>col</key><integer>5</integer>
Ted Kremeneke215ba12012-02-18 22:02:57 +00001499// CHECK: <key>file</key><integer>0</integer>
1500// CHECK: </dict>
1501// CHECK: </array>
1502// CHECK: </dict>
1503// CHECK: </array>
1504// CHECK: </dict>
1505// CHECK: <dict>
1506// CHECK: <key>kind</key><string>event</string>
1507// CHECK: <key>location</key>
1508// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001509// CHECK: <key>line</key><integer>76</integer>
Ted Kremeneke215ba12012-02-18 22:02:57 +00001510// CHECK: <key>col</key><integer>5</integer>
1511// CHECK: <key>file</key><integer>0</integer>
1512// CHECK: </dict>
1513// CHECK: <key>ranges</key>
1514// CHECK: <array>
1515// CHECK: <array>
1516// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001517// CHECK: <key>line</key><integer>76</integer>
Ted Kremeneke215ba12012-02-18 22:02:57 +00001518// CHECK: <key>col</key><integer>6</integer>
1519// CHECK: <key>file</key><integer>0</integer>
1520// CHECK: </dict>
1521// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001522// CHECK: <key>line</key><integer>76</integer>
Ted Kremeneke215ba12012-02-18 22:02:57 +00001523// CHECK: <key>col</key><integer>6</integer>
1524// CHECK: <key>file</key><integer>0</integer>
1525// CHECK: </dict>
1526// CHECK: </array>
1527// CHECK: </array>
Ted Kremenek07189522012-04-04 18:11:35 +00001528// CHECK: <key>depth</key><integer>0</integer>
Ted Kremeneke215ba12012-02-18 22:02:57 +00001529// CHECK: <key>extended_message</key>
1530// CHECK: <string>Dereference of null pointer (loaded from variable &apos;p&apos;)</string>
1531// CHECK: <key>message</key>
1532// CHECK: <string>Dereference of null pointer (loaded from variable &apos;p&apos;)</string>
1533// CHECK: </dict>
1534// CHECK: </array>
1535// CHECK: <key>description</key><string>Dereference of null pointer (loaded from variable &apos;p&apos;)</string>
1536// CHECK: <key>category</key><string>Logic error</string>
1537// CHECK: <key>type</key><string>Dereference of null pointer</string>
Ted Kremenek07189522012-04-04 18:11:35 +00001538// CHECK: <key>issue_context_kind</key><string>Objective-C method</string>
1539// CHECK: <key>issue_context</key><string>test</string>
Anna Zaksa64fae12012-06-08 00:04:43 +00001540// CHECK: <key>issue_hash</key><integer>3</integer>
Ted Kremeneke215ba12012-02-18 22:02:57 +00001541// CHECK: <key>location</key>
1542// CHECK: <dict>
Jordan Rose2b1b0252012-08-06 21:28:11 +00001543// CHECK: <key>line</key><integer>76</integer>
Ted Kremeneke215ba12012-02-18 22:02:57 +00001544// CHECK: <key>col</key><integer>5</integer>
1545// CHECK: <key>file</key><integer>0</integer>
1546// CHECK: </dict>
1547// CHECK: </dict>
Ted Kremenekc6ea5d42009-11-17 02:31:39 +00001548// CHECK: </array>
1549// CHECK: </dict>
Ted Kremenek48cebf22009-11-17 06:34:24 +00001550// CHECK: </plist>