• Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1  // RUN: %clang_cc1 -analyze -analyzer-checker=core -analyzer-output=text -verify %s
2  // RUN: %clang_cc1 -analyze -analyzer-checker=core -analyzer-output=plist-multi-file -analyzer-config path-diagnostics-alternate=false %s -o %t.plist
3  // RUN: FileCheck --input-file=%t.plist %s
4  
foo_irrelevant(int c)5  void foo_irrelevant(int c) {
6      if (c)
7          return;
8      c++;
9      return;
10  }
foo(int c,int * x)11  void foo(int c, int *x) {
12      if (c)
13             //expected-note@-1{{Assuming 'c' is not equal to 0}}
14             //expected-note@-2{{Taking true branch}}
15          return;
16      *x = 5;
17  }
18  
use(int c)19  int use(int c) {
20      int xx; //expected-note {{'xx' declared without an initial value}}
21      int *y = &xx;
22      foo (c, y);
23                  //expected-note@-1{{Calling 'foo'}}
24                  //expected-note@-2{{Returning from 'foo'}}
25      foo_irrelevant(c);
26      return xx+3; //expected-warning{{The left operand of '+' is a garbage value}}
27                   //expected-note@-1{{The left operand of '+' is a garbage value}}
28  }
29  
initArray(int x,double XYZ[3])30  void initArray(int x, double XYZ[3]) {
31      if (x <= 0) //expected-note {{Taking true branch}}
32                  //expected-note@-1 {{Assuming 'x' is <= 0}}
33          return;
34      XYZ[0] = 1;
35      XYZ[1] = 1;
36      XYZ[2] = 1;
37  }
testPassingParentRegionArray(int x)38  int testPassingParentRegionArray(int x) {
39      double XYZ[3];
40      initArray(x, XYZ); //expected-note {{Calling 'initArray'}}
41                         //expected-note@-1 {{Returning from 'initArray'}}
42      return 1 * XYZ[1]; //expected-warning {{The right operand of '*' is a garbage value}}
43                         //expected-note@-1 {{The right operand of '*' is a garbage value}}
44  }
45  
46  double *getValidPtr();
47  struct WithFields {
48    double *f1;
49  };
initStruct(int x,struct WithFields * X)50  void initStruct(int x, struct WithFields *X) {
51    if (x <= 0) //expected-note {{Taking true branch}}
52                //expected-note@-1 {{Assuming 'x' is <= 0}}
53  
54      return;
55    X->f1 = getValidPtr();
56  }
testPassingParentRegionStruct(int x)57  double testPassingParentRegionStruct(int x) {
58    struct WithFields st;
59    st.f1 = 0; // expected-note {{Null pointer value stored to 'st.f1'}}
60    initStruct(x, &st); //expected-note {{Calling 'initStruct'}}
61                        //expected-note@-1 {{Returning from 'initStruct'}}
62    return (*st.f1); //expected-warning {{Dereference of null pointer}}
63                     //expected-note@-1{{Dereference of null pointer (loaded from field 'f1')}}
64  }
65  
66  // CHECK:  <key>diagnostics</key>
67  // CHECK-NEXT:  <array>
68  // CHECK-NEXT:   <dict>
69  // CHECK-NEXT:    <key>path</key>
70  // CHECK-NEXT:    <array>
71  // CHECK-NEXT:     <dict>
72  // CHECK-NEXT:      <key>kind</key><string>event</string>
73  // CHECK-NEXT:      <key>location</key>
74  // CHECK-NEXT:      <dict>
75  // CHECK-NEXT:       <key>line</key><integer>20</integer>
76  // CHECK-NEXT:       <key>col</key><integer>5</integer>
77  // CHECK-NEXT:       <key>file</key><integer>0</integer>
78  // CHECK-NEXT:      </dict>
79  // CHECK-NEXT:      <key>ranges</key>
80  // CHECK-NEXT:      <array>
81  // CHECK-NEXT:        <array>
82  // CHECK-NEXT:         <dict>
83  // CHECK-NEXT:          <key>line</key><integer>20</integer>
84  // CHECK-NEXT:          <key>col</key><integer>5</integer>
85  // CHECK-NEXT:          <key>file</key><integer>0</integer>
86  // CHECK-NEXT:         </dict>
87  // CHECK-NEXT:         <dict>
88  // CHECK-NEXT:          <key>line</key><integer>20</integer>
89  // CHECK-NEXT:          <key>col</key><integer>10</integer>
90  // CHECK-NEXT:          <key>file</key><integer>0</integer>
91  // CHECK-NEXT:         </dict>
92  // CHECK-NEXT:        </array>
93  // CHECK-NEXT:      </array>
94  // CHECK-NEXT:      <key>depth</key><integer>0</integer>
95  // CHECK-NEXT:      <key>extended_message</key>
96  // CHECK-NEXT:      <string>&apos;xx&apos; declared without an initial value</string>
97  // CHECK-NEXT:      <key>message</key>
98  // CHECK-NEXT:      <string>&apos;xx&apos; declared without an initial value</string>
99  // CHECK-NEXT:     </dict>
100  // CHECK-NEXT:     <dict>
101  // CHECK-NEXT:      <key>kind</key><string>control</string>
102  // CHECK-NEXT:      <key>edges</key>
103  // CHECK-NEXT:       <array>
104  // CHECK-NEXT:        <dict>
105  // CHECK-NEXT:         <key>start</key>
106  // CHECK-NEXT:          <array>
107  // CHECK-NEXT:           <dict>
108  // CHECK-NEXT:            <key>line</key><integer>20</integer>
109  // CHECK-NEXT:            <key>col</key><integer>5</integer>
110  // CHECK-NEXT:            <key>file</key><integer>0</integer>
111  // CHECK-NEXT:           </dict>
112  // CHECK-NEXT:           <dict>
113  // CHECK-NEXT:            <key>line</key><integer>20</integer>
114  // CHECK-NEXT:            <key>col</key><integer>7</integer>
115  // CHECK-NEXT:            <key>file</key><integer>0</integer>
116  // CHECK-NEXT:           </dict>
117  // CHECK-NEXT:          </array>
118  // CHECK-NEXT:         <key>end</key>
119  // CHECK-NEXT:          <array>
120  // CHECK-NEXT:           <dict>
121  // CHECK-NEXT:            <key>line</key><integer>22</integer>
122  // CHECK-NEXT:            <key>col</key><integer>5</integer>
123  // CHECK-NEXT:            <key>file</key><integer>0</integer>
124  // CHECK-NEXT:           </dict>
125  // CHECK-NEXT:           <dict>
126  // CHECK-NEXT:            <key>line</key><integer>22</integer>
127  // CHECK-NEXT:            <key>col</key><integer>7</integer>
128  // CHECK-NEXT:            <key>file</key><integer>0</integer>
129  // CHECK-NEXT:           </dict>
130  // CHECK-NEXT:          </array>
131  // CHECK-NEXT:        </dict>
132  // CHECK-NEXT:       </array>
133  // CHECK-NEXT:     </dict>
134  // CHECK-NEXT:     <dict>
135  // CHECK-NEXT:      <key>kind</key><string>event</string>
136  // CHECK-NEXT:      <key>location</key>
137  // CHECK-NEXT:      <dict>
138  // CHECK-NEXT:       <key>line</key><integer>22</integer>
139  // CHECK-NEXT:       <key>col</key><integer>5</integer>
140  // CHECK-NEXT:       <key>file</key><integer>0</integer>
141  // CHECK-NEXT:      </dict>
142  // CHECK-NEXT:      <key>ranges</key>
143  // CHECK-NEXT:      <array>
144  // CHECK-NEXT:        <array>
145  // CHECK-NEXT:         <dict>
146  // CHECK-NEXT:          <key>line</key><integer>22</integer>
147  // CHECK-NEXT:          <key>col</key><integer>5</integer>
148  // CHECK-NEXT:          <key>file</key><integer>0</integer>
149  // CHECK-NEXT:         </dict>
150  // CHECK-NEXT:         <dict>
151  // CHECK-NEXT:          <key>line</key><integer>22</integer>
152  // CHECK-NEXT:          <key>col</key><integer>14</integer>
153  // CHECK-NEXT:          <key>file</key><integer>0</integer>
154  // CHECK-NEXT:         </dict>
155  // CHECK-NEXT:        </array>
156  // CHECK-NEXT:      </array>
157  // CHECK-NEXT:      <key>depth</key><integer>0</integer>
158  // CHECK-NEXT:      <key>extended_message</key>
159  // CHECK-NEXT:      <string>Calling &apos;foo&apos;</string>
160  // CHECK-NEXT:      <key>message</key>
161  // CHECK-NEXT:      <string>Calling &apos;foo&apos;</string>
162  // CHECK-NEXT:     </dict>
163  // CHECK-NEXT:     <dict>
164  // CHECK-NEXT:      <key>kind</key><string>event</string>
165  // CHECK-NEXT:      <key>location</key>
166  // CHECK-NEXT:      <dict>
167  // CHECK-NEXT:       <key>line</key><integer>11</integer>
168  // CHECK-NEXT:       <key>col</key><integer>1</integer>
169  // CHECK-NEXT:       <key>file</key><integer>0</integer>
170  // CHECK-NEXT:      </dict>
171  // CHECK-NEXT:      <key>depth</key><integer>1</integer>
172  // CHECK-NEXT:      <key>extended_message</key>
173  // CHECK-NEXT:      <string>Entered call from &apos;use&apos;</string>
174  // CHECK-NEXT:      <key>message</key>
175  // CHECK-NEXT:      <string>Entered call from &apos;use&apos;</string>
176  // CHECK-NEXT:     </dict>
177  // CHECK-NEXT:     <dict>
178  // CHECK-NEXT:      <key>kind</key><string>control</string>
179  // CHECK-NEXT:      <key>edges</key>
180  // CHECK-NEXT:       <array>
181  // CHECK-NEXT:        <dict>
182  // CHECK-NEXT:         <key>start</key>
183  // CHECK-NEXT:          <array>
184  // CHECK-NEXT:           <dict>
185  // CHECK-NEXT:            <key>line</key><integer>11</integer>
186  // CHECK-NEXT:            <key>col</key><integer>1</integer>
187  // CHECK-NEXT:            <key>file</key><integer>0</integer>
188  // CHECK-NEXT:           </dict>
189  // CHECK-NEXT:           <dict>
190  // CHECK-NEXT:            <key>line</key><integer>11</integer>
191  // CHECK-NEXT:            <key>col</key><integer>4</integer>
192  // CHECK-NEXT:            <key>file</key><integer>0</integer>
193  // CHECK-NEXT:           </dict>
194  // CHECK-NEXT:          </array>
195  // CHECK-NEXT:         <key>end</key>
196  // CHECK-NEXT:          <array>
197  // CHECK-NEXT:           <dict>
198  // CHECK-NEXT:            <key>line</key><integer>12</integer>
199  // CHECK-NEXT:            <key>col</key><integer>5</integer>
200  // CHECK-NEXT:            <key>file</key><integer>0</integer>
201  // CHECK-NEXT:           </dict>
202  // CHECK-NEXT:           <dict>
203  // CHECK-NEXT:            <key>line</key><integer>12</integer>
204  // CHECK-NEXT:            <key>col</key><integer>6</integer>
205  // CHECK-NEXT:            <key>file</key><integer>0</integer>
206  // CHECK-NEXT:           </dict>
207  // CHECK-NEXT:          </array>
208  // CHECK-NEXT:        </dict>
209  // CHECK-NEXT:       </array>
210  // CHECK-NEXT:     </dict>
211  // CHECK-NEXT:     <dict>
212  // CHECK-NEXT:      <key>kind</key><string>control</string>
213  // CHECK-NEXT:      <key>edges</key>
214  // CHECK-NEXT:       <array>
215  // CHECK-NEXT:        <dict>
216  // CHECK-NEXT:         <key>start</key>
217  // CHECK-NEXT:          <array>
218  // CHECK-NEXT:           <dict>
219  // CHECK-NEXT:            <key>line</key><integer>12</integer>
220  // CHECK-NEXT:            <key>col</key><integer>5</integer>
221  // CHECK-NEXT:            <key>file</key><integer>0</integer>
222  // CHECK-NEXT:           </dict>
223  // CHECK-NEXT:           <dict>
224  // CHECK-NEXT:            <key>line</key><integer>12</integer>
225  // CHECK-NEXT:            <key>col</key><integer>6</integer>
226  // CHECK-NEXT:            <key>file</key><integer>0</integer>
227  // CHECK-NEXT:           </dict>
228  // CHECK-NEXT:          </array>
229  // CHECK-NEXT:         <key>end</key>
230  // CHECK-NEXT:          <array>
231  // CHECK-NEXT:           <dict>
232  // CHECK-NEXT:            <key>line</key><integer>12</integer>
233  // CHECK-NEXT:            <key>col</key><integer>9</integer>
234  // CHECK-NEXT:            <key>file</key><integer>0</integer>
235  // CHECK-NEXT:           </dict>
236  // CHECK-NEXT:           <dict>
237  // CHECK-NEXT:            <key>line</key><integer>12</integer>
238  // CHECK-NEXT:            <key>col</key><integer>9</integer>
239  // CHECK-NEXT:            <key>file</key><integer>0</integer>
240  // CHECK-NEXT:           </dict>
241  // CHECK-NEXT:          </array>
242  // CHECK-NEXT:        </dict>
243  // CHECK-NEXT:       </array>
244  // CHECK-NEXT:     </dict>
245  // CHECK-NEXT:     <dict>
246  // CHECK-NEXT:      <key>kind</key><string>event</string>
247  // CHECK-NEXT:      <key>location</key>
248  // CHECK-NEXT:      <dict>
249  // CHECK-NEXT:       <key>line</key><integer>12</integer>
250  // CHECK-NEXT:       <key>col</key><integer>9</integer>
251  // CHECK-NEXT:       <key>file</key><integer>0</integer>
252  // CHECK-NEXT:      </dict>
253  // CHECK-NEXT:      <key>ranges</key>
254  // CHECK-NEXT:      <array>
255  // CHECK-NEXT:        <array>
256  // CHECK-NEXT:         <dict>
257  // CHECK-NEXT:          <key>line</key><integer>12</integer>
258  // CHECK-NEXT:          <key>col</key><integer>9</integer>
259  // CHECK-NEXT:          <key>file</key><integer>0</integer>
260  // CHECK-NEXT:         </dict>
261  // CHECK-NEXT:         <dict>
262  // CHECK-NEXT:          <key>line</key><integer>12</integer>
263  // CHECK-NEXT:          <key>col</key><integer>9</integer>
264  // CHECK-NEXT:          <key>file</key><integer>0</integer>
265  // CHECK-NEXT:         </dict>
266  // CHECK-NEXT:        </array>
267  // CHECK-NEXT:      </array>
268  // CHECK-NEXT:      <key>depth</key><integer>1</integer>
269  // CHECK-NEXT:      <key>extended_message</key>
270  // CHECK-NEXT:      <string>Assuming &apos;c&apos; is not equal to 0</string>
271  // CHECK-NEXT:      <key>message</key>
272  // CHECK-NEXT:      <string>Assuming &apos;c&apos; is not equal to 0</string>
273  // CHECK-NEXT:     </dict>
274  // CHECK-NEXT:     <dict>
275  // CHECK-NEXT:      <key>kind</key><string>control</string>
276  // CHECK-NEXT:      <key>edges</key>
277  // CHECK-NEXT:       <array>
278  // CHECK-NEXT:        <dict>
279  // CHECK-NEXT:         <key>start</key>
280  // CHECK-NEXT:          <array>
281  // CHECK-NEXT:           <dict>
282  // CHECK-NEXT:            <key>line</key><integer>12</integer>
283  // CHECK-NEXT:            <key>col</key><integer>9</integer>
284  // CHECK-NEXT:            <key>file</key><integer>0</integer>
285  // CHECK-NEXT:           </dict>
286  // CHECK-NEXT:           <dict>
287  // CHECK-NEXT:            <key>line</key><integer>12</integer>
288  // CHECK-NEXT:            <key>col</key><integer>9</integer>
289  // CHECK-NEXT:            <key>file</key><integer>0</integer>
290  // CHECK-NEXT:           </dict>
291  // CHECK-NEXT:          </array>
292  // CHECK-NEXT:         <key>end</key>
293  // CHECK-NEXT:          <array>
294  // CHECK-NEXT:           <dict>
295  // CHECK-NEXT:            <key>line</key><integer>15</integer>
296  // CHECK-NEXT:            <key>col</key><integer>9</integer>
297  // CHECK-NEXT:            <key>file</key><integer>0</integer>
298  // CHECK-NEXT:           </dict>
299  // CHECK-NEXT:           <dict>
300  // CHECK-NEXT:            <key>line</key><integer>15</integer>
301  // CHECK-NEXT:            <key>col</key><integer>14</integer>
302  // CHECK-NEXT:            <key>file</key><integer>0</integer>
303  // CHECK-NEXT:           </dict>
304  // CHECK-NEXT:          </array>
305  // CHECK-NEXT:        </dict>
306  // CHECK-NEXT:       </array>
307  // CHECK-NEXT:     </dict>
308  // CHECK-NEXT:     <dict>
309  // CHECK-NEXT:      <key>kind</key><string>event</string>
310  // CHECK-NEXT:      <key>location</key>
311  // CHECK-NEXT:      <dict>
312  // CHECK-NEXT:       <key>line</key><integer>22</integer>
313  // CHECK-NEXT:       <key>col</key><integer>5</integer>
314  // CHECK-NEXT:       <key>file</key><integer>0</integer>
315  // CHECK-NEXT:      </dict>
316  // CHECK-NEXT:      <key>ranges</key>
317  // CHECK-NEXT:      <array>
318  // CHECK-NEXT:        <array>
319  // CHECK-NEXT:         <dict>
320  // CHECK-NEXT:          <key>line</key><integer>22</integer>
321  // CHECK-NEXT:          <key>col</key><integer>5</integer>
322  // CHECK-NEXT:          <key>file</key><integer>0</integer>
323  // CHECK-NEXT:         </dict>
324  // CHECK-NEXT:         <dict>
325  // CHECK-NEXT:          <key>line</key><integer>22</integer>
326  // CHECK-NEXT:          <key>col</key><integer>14</integer>
327  // CHECK-NEXT:          <key>file</key><integer>0</integer>
328  // CHECK-NEXT:         </dict>
329  // CHECK-NEXT:        </array>
330  // CHECK-NEXT:      </array>
331  // CHECK-NEXT:      <key>depth</key><integer>0</integer>
332  // CHECK-NEXT:      <key>extended_message</key>
333  // CHECK-NEXT:      <string>Returning from &apos;foo&apos;</string>
334  // CHECK-NEXT:      <key>message</key>
335  // CHECK-NEXT:      <string>Returning from &apos;foo&apos;</string>
336  // CHECK-NEXT:     </dict>
337  // CHECK-NEXT:     <dict>
338  // CHECK-NEXT:      <key>kind</key><string>control</string>
339  // CHECK-NEXT:      <key>edges</key>
340  // CHECK-NEXT:       <array>
341  // CHECK-NEXT:        <dict>
342  // CHECK-NEXT:         <key>start</key>
343  // CHECK-NEXT:          <array>
344  // CHECK-NEXT:           <dict>
345  // CHECK-NEXT:            <key>line</key><integer>22</integer>
346  // CHECK-NEXT:            <key>col</key><integer>5</integer>
347  // CHECK-NEXT:            <key>file</key><integer>0</integer>
348  // CHECK-NEXT:           </dict>
349  // CHECK-NEXT:           <dict>
350  // CHECK-NEXT:            <key>line</key><integer>22</integer>
351  // CHECK-NEXT:            <key>col</key><integer>7</integer>
352  // CHECK-NEXT:            <key>file</key><integer>0</integer>
353  // CHECK-NEXT:           </dict>
354  // CHECK-NEXT:          </array>
355  // CHECK-NEXT:         <key>end</key>
356  // CHECK-NEXT:          <array>
357  // CHECK-NEXT:           <dict>
358  // CHECK-NEXT:            <key>line</key><integer>25</integer>
359  // CHECK-NEXT:            <key>col</key><integer>5</integer>
360  // CHECK-NEXT:            <key>file</key><integer>0</integer>
361  // CHECK-NEXT:           </dict>
362  // CHECK-NEXT:           <dict>
363  // CHECK-NEXT:            <key>line</key><integer>25</integer>
364  // CHECK-NEXT:            <key>col</key><integer>18</integer>
365  // CHECK-NEXT:            <key>file</key><integer>0</integer>
366  // CHECK-NEXT:           </dict>
367  // CHECK-NEXT:          </array>
368  // CHECK-NEXT:        </dict>
369  // CHECK-NEXT:       </array>
370  // CHECK-NEXT:     </dict>
371  // CHECK-NEXT:     <dict>
372  // CHECK-NEXT:      <key>kind</key><string>control</string>
373  // CHECK-NEXT:      <key>edges</key>
374  // CHECK-NEXT:       <array>
375  // CHECK-NEXT:        <dict>
376  // CHECK-NEXT:         <key>start</key>
377  // CHECK-NEXT:          <array>
378  // CHECK-NEXT:           <dict>
379  // CHECK-NEXT:            <key>line</key><integer>25</integer>
380  // CHECK-NEXT:            <key>col</key><integer>5</integer>
381  // CHECK-NEXT:            <key>file</key><integer>0</integer>
382  // CHECK-NEXT:           </dict>
383  // CHECK-NEXT:           <dict>
384  // CHECK-NEXT:            <key>line</key><integer>25</integer>
385  // CHECK-NEXT:            <key>col</key><integer>18</integer>
386  // CHECK-NEXT:            <key>file</key><integer>0</integer>
387  // CHECK-NEXT:           </dict>
388  // CHECK-NEXT:          </array>
389  // CHECK-NEXT:         <key>end</key>
390  // CHECK-NEXT:          <array>
391  // CHECK-NEXT:           <dict>
392  // CHECK-NEXT:            <key>line</key><integer>26</integer>
393  // CHECK-NEXT:            <key>col</key><integer>14</integer>
394  // CHECK-NEXT:            <key>file</key><integer>0</integer>
395  // CHECK-NEXT:           </dict>
396  // CHECK-NEXT:           <dict>
397  // CHECK-NEXT:            <key>line</key><integer>26</integer>
398  // CHECK-NEXT:            <key>col</key><integer>14</integer>
399  // CHECK-NEXT:            <key>file</key><integer>0</integer>
400  // CHECK-NEXT:           </dict>
401  // CHECK-NEXT:          </array>
402  // CHECK-NEXT:        </dict>
403  // CHECK-NEXT:       </array>
404  // CHECK-NEXT:     </dict>
405  // CHECK-NEXT:     <dict>
406  // CHECK-NEXT:      <key>kind</key><string>event</string>
407  // CHECK-NEXT:      <key>location</key>
408  // CHECK-NEXT:      <dict>
409  // CHECK-NEXT:       <key>line</key><integer>26</integer>
410  // CHECK-NEXT:       <key>col</key><integer>14</integer>
411  // CHECK-NEXT:       <key>file</key><integer>0</integer>
412  // CHECK-NEXT:      </dict>
413  // CHECK-NEXT:      <key>ranges</key>
414  // CHECK-NEXT:      <array>
415  // CHECK-NEXT:        <array>
416  // CHECK-NEXT:         <dict>
417  // CHECK-NEXT:          <key>line</key><integer>26</integer>
418  // CHECK-NEXT:          <key>col</key><integer>12</integer>
419  // CHECK-NEXT:          <key>file</key><integer>0</integer>
420  // CHECK-NEXT:         </dict>
421  // CHECK-NEXT:         <dict>
422  // CHECK-NEXT:          <key>line</key><integer>26</integer>
423  // CHECK-NEXT:          <key>col</key><integer>13</integer>
424  // CHECK-NEXT:          <key>file</key><integer>0</integer>
425  // CHECK-NEXT:         </dict>
426  // CHECK-NEXT:        </array>
427  // CHECK-NEXT:      </array>
428  // CHECK-NEXT:      <key>depth</key><integer>0</integer>
429  // CHECK-NEXT:      <key>extended_message</key>
430  // CHECK-NEXT:      <string>The left operand of &apos;+&apos; is a garbage value</string>
431  // CHECK-NEXT:      <key>message</key>
432  // CHECK-NEXT:      <string>The left operand of &apos;+&apos; is a garbage value</string>
433  // CHECK-NEXT:     </dict>
434  // CHECK-NEXT:    </array>
435  // CHECK-NEXT:    <key>description</key><string>The left operand of &apos;+&apos; is a garbage value</string>
436  // CHECK-NEXT:    <key>category</key><string>Logic error</string>
437  // CHECK-NEXT:    <key>type</key><string>Result of operation is garbage or undefined</string>
438  // CHECK-NEXT:    <key>check_name</key><string>core.UndefinedBinaryOperatorResult</string>
439  // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
440  // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>ae5e3bd03d6d97614947942dae18e1da</string>
441  // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
442  // CHECK-NEXT:   <key>issue_context</key><string>use</string>
443  // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>7</string>
444  // CHECK-NEXT:   <key>location</key>
445  // CHECK-NEXT:   <dict>
446  // CHECK-NEXT:    <key>line</key><integer>26</integer>
447  // CHECK-NEXT:    <key>col</key><integer>14</integer>
448  // CHECK-NEXT:    <key>file</key><integer>0</integer>
449  // CHECK-NEXT:   </dict>
450  // CHECK-NEXT:   </dict>
451  // CHECK-NEXT:   <dict>
452  // CHECK-NEXT:    <key>path</key>
453  // CHECK-NEXT:    <array>
454  // CHECK-NEXT:     <dict>
455  // CHECK-NEXT:      <key>kind</key><string>control</string>
456  // CHECK-NEXT:      <key>edges</key>
457  // CHECK-NEXT:       <array>
458  // CHECK-NEXT:        <dict>
459  // CHECK-NEXT:         <key>start</key>
460  // CHECK-NEXT:          <array>
461  // CHECK-NEXT:           <dict>
462  // CHECK-NEXT:            <key>line</key><integer>39</integer>
463  // CHECK-NEXT:            <key>col</key><integer>5</integer>
464  // CHECK-NEXT:            <key>file</key><integer>0</integer>
465  // CHECK-NEXT:           </dict>
466  // CHECK-NEXT:           <dict>
467  // CHECK-NEXT:            <key>line</key><integer>39</integer>
468  // CHECK-NEXT:            <key>col</key><integer>10</integer>
469  // CHECK-NEXT:            <key>file</key><integer>0</integer>
470  // CHECK-NEXT:           </dict>
471  // CHECK-NEXT:          </array>
472  // CHECK-NEXT:         <key>end</key>
473  // CHECK-NEXT:          <array>
474  // CHECK-NEXT:           <dict>
475  // CHECK-NEXT:            <key>line</key><integer>40</integer>
476  // CHECK-NEXT:            <key>col</key><integer>5</integer>
477  // CHECK-NEXT:            <key>file</key><integer>0</integer>
478  // CHECK-NEXT:           </dict>
479  // CHECK-NEXT:           <dict>
480  // CHECK-NEXT:            <key>line</key><integer>40</integer>
481  // CHECK-NEXT:            <key>col</key><integer>13</integer>
482  // CHECK-NEXT:            <key>file</key><integer>0</integer>
483  // CHECK-NEXT:           </dict>
484  // CHECK-NEXT:          </array>
485  // CHECK-NEXT:        </dict>
486  // CHECK-NEXT:       </array>
487  // CHECK-NEXT:     </dict>
488  // CHECK-NEXT:     <dict>
489  // CHECK-NEXT:      <key>kind</key><string>event</string>
490  // CHECK-NEXT:      <key>location</key>
491  // CHECK-NEXT:      <dict>
492  // CHECK-NEXT:       <key>line</key><integer>40</integer>
493  // CHECK-NEXT:       <key>col</key><integer>5</integer>
494  // CHECK-NEXT:       <key>file</key><integer>0</integer>
495  // CHECK-NEXT:      </dict>
496  // CHECK-NEXT:      <key>ranges</key>
497  // CHECK-NEXT:      <array>
498  // CHECK-NEXT:        <array>
499  // CHECK-NEXT:         <dict>
500  // CHECK-NEXT:          <key>line</key><integer>40</integer>
501  // CHECK-NEXT:          <key>col</key><integer>5</integer>
502  // CHECK-NEXT:          <key>file</key><integer>0</integer>
503  // CHECK-NEXT:         </dict>
504  // CHECK-NEXT:         <dict>
505  // CHECK-NEXT:          <key>line</key><integer>40</integer>
506  // CHECK-NEXT:          <key>col</key><integer>21</integer>
507  // CHECK-NEXT:          <key>file</key><integer>0</integer>
508  // CHECK-NEXT:         </dict>
509  // CHECK-NEXT:        </array>
510  // CHECK-NEXT:      </array>
511  // CHECK-NEXT:      <key>depth</key><integer>0</integer>
512  // CHECK-NEXT:      <key>extended_message</key>
513  // CHECK-NEXT:      <string>Calling &apos;initArray&apos;</string>
514  // CHECK-NEXT:      <key>message</key>
515  // CHECK-NEXT:      <string>Calling &apos;initArray&apos;</string>
516  // CHECK-NEXT:     </dict>
517  // CHECK-NEXT:     <dict>
518  // CHECK-NEXT:      <key>kind</key><string>event</string>
519  // CHECK-NEXT:      <key>location</key>
520  // CHECK-NEXT:      <dict>
521  // CHECK-NEXT:       <key>line</key><integer>30</integer>
522  // CHECK-NEXT:       <key>col</key><integer>1</integer>
523  // CHECK-NEXT:       <key>file</key><integer>0</integer>
524  // CHECK-NEXT:      </dict>
525  // CHECK-NEXT:      <key>depth</key><integer>1</integer>
526  // CHECK-NEXT:      <key>extended_message</key>
527  // CHECK-NEXT:      <string>Entered call from &apos;testPassingParentRegionArray&apos;</string>
528  // CHECK-NEXT:      <key>message</key>
529  // CHECK-NEXT:      <string>Entered call from &apos;testPassingParentRegionArray&apos;</string>
530  // CHECK-NEXT:     </dict>
531  // CHECK-NEXT:     <dict>
532  // CHECK-NEXT:      <key>kind</key><string>control</string>
533  // CHECK-NEXT:      <key>edges</key>
534  // CHECK-NEXT:       <array>
535  // CHECK-NEXT:        <dict>
536  // CHECK-NEXT:         <key>start</key>
537  // CHECK-NEXT:          <array>
538  // CHECK-NEXT:           <dict>
539  // CHECK-NEXT:            <key>line</key><integer>30</integer>
540  // CHECK-NEXT:            <key>col</key><integer>1</integer>
541  // CHECK-NEXT:            <key>file</key><integer>0</integer>
542  // CHECK-NEXT:           </dict>
543  // CHECK-NEXT:           <dict>
544  // CHECK-NEXT:            <key>line</key><integer>30</integer>
545  // CHECK-NEXT:            <key>col</key><integer>4</integer>
546  // CHECK-NEXT:            <key>file</key><integer>0</integer>
547  // CHECK-NEXT:           </dict>
548  // CHECK-NEXT:          </array>
549  // CHECK-NEXT:         <key>end</key>
550  // CHECK-NEXT:          <array>
551  // CHECK-NEXT:           <dict>
552  // CHECK-NEXT:            <key>line</key><integer>31</integer>
553  // CHECK-NEXT:            <key>col</key><integer>5</integer>
554  // CHECK-NEXT:            <key>file</key><integer>0</integer>
555  // CHECK-NEXT:           </dict>
556  // CHECK-NEXT:           <dict>
557  // CHECK-NEXT:            <key>line</key><integer>31</integer>
558  // CHECK-NEXT:            <key>col</key><integer>6</integer>
559  // CHECK-NEXT:            <key>file</key><integer>0</integer>
560  // CHECK-NEXT:           </dict>
561  // CHECK-NEXT:          </array>
562  // CHECK-NEXT:        </dict>
563  // CHECK-NEXT:       </array>
564  // CHECK-NEXT:     </dict>
565  // CHECK-NEXT:     <dict>
566  // CHECK-NEXT:      <key>kind</key><string>control</string>
567  // CHECK-NEXT:      <key>edges</key>
568  // CHECK-NEXT:       <array>
569  // CHECK-NEXT:        <dict>
570  // CHECK-NEXT:         <key>start</key>
571  // CHECK-NEXT:          <array>
572  // CHECK-NEXT:           <dict>
573  // CHECK-NEXT:            <key>line</key><integer>31</integer>
574  // CHECK-NEXT:            <key>col</key><integer>5</integer>
575  // CHECK-NEXT:            <key>file</key><integer>0</integer>
576  // CHECK-NEXT:           </dict>
577  // CHECK-NEXT:           <dict>
578  // CHECK-NEXT:            <key>line</key><integer>31</integer>
579  // CHECK-NEXT:            <key>col</key><integer>6</integer>
580  // CHECK-NEXT:            <key>file</key><integer>0</integer>
581  // CHECK-NEXT:           </dict>
582  // CHECK-NEXT:          </array>
583  // CHECK-NEXT:         <key>end</key>
584  // CHECK-NEXT:          <array>
585  // CHECK-NEXT:           <dict>
586  // CHECK-NEXT:            <key>line</key><integer>31</integer>
587  // CHECK-NEXT:            <key>col</key><integer>9</integer>
588  // CHECK-NEXT:            <key>file</key><integer>0</integer>
589  // CHECK-NEXT:           </dict>
590  // CHECK-NEXT:           <dict>
591  // CHECK-NEXT:            <key>line</key><integer>31</integer>
592  // CHECK-NEXT:            <key>col</key><integer>9</integer>
593  // CHECK-NEXT:            <key>file</key><integer>0</integer>
594  // CHECK-NEXT:           </dict>
595  // CHECK-NEXT:          </array>
596  // CHECK-NEXT:        </dict>
597  // CHECK-NEXT:       </array>
598  // CHECK-NEXT:     </dict>
599  // CHECK-NEXT:     <dict>
600  // CHECK-NEXT:      <key>kind</key><string>event</string>
601  // CHECK-NEXT:      <key>location</key>
602  // CHECK-NEXT:      <dict>
603  // CHECK-NEXT:       <key>line</key><integer>31</integer>
604  // CHECK-NEXT:       <key>col</key><integer>9</integer>
605  // CHECK-NEXT:       <key>file</key><integer>0</integer>
606  // CHECK-NEXT:      </dict>
607  // CHECK-NEXT:      <key>ranges</key>
608  // CHECK-NEXT:      <array>
609  // CHECK-NEXT:        <array>
610  // CHECK-NEXT:         <dict>
611  // CHECK-NEXT:          <key>line</key><integer>31</integer>
612  // CHECK-NEXT:          <key>col</key><integer>9</integer>
613  // CHECK-NEXT:          <key>file</key><integer>0</integer>
614  // CHECK-NEXT:         </dict>
615  // CHECK-NEXT:         <dict>
616  // CHECK-NEXT:          <key>line</key><integer>31</integer>
617  // CHECK-NEXT:          <key>col</key><integer>14</integer>
618  // CHECK-NEXT:          <key>file</key><integer>0</integer>
619  // CHECK-NEXT:         </dict>
620  // CHECK-NEXT:        </array>
621  // CHECK-NEXT:      </array>
622  // CHECK-NEXT:      <key>depth</key><integer>1</integer>
623  // CHECK-NEXT:      <key>extended_message</key>
624  // CHECK-NEXT:      <string>Assuming &apos;x&apos; is &lt;= 0</string>
625  // CHECK-NEXT:      <key>message</key>
626  // CHECK-NEXT:      <string>Assuming &apos;x&apos; is &lt;= 0</string>
627  // CHECK-NEXT:     </dict>
628  // CHECK-NEXT:     <dict>
629  // CHECK-NEXT:      <key>kind</key><string>control</string>
630  // CHECK-NEXT:      <key>edges</key>
631  // CHECK-NEXT:       <array>
632  // CHECK-NEXT:        <dict>
633  // CHECK-NEXT:         <key>start</key>
634  // CHECK-NEXT:          <array>
635  // CHECK-NEXT:           <dict>
636  // CHECK-NEXT:            <key>line</key><integer>31</integer>
637  // CHECK-NEXT:            <key>col</key><integer>9</integer>
638  // CHECK-NEXT:            <key>file</key><integer>0</integer>
639  // CHECK-NEXT:           </dict>
640  // CHECK-NEXT:           <dict>
641  // CHECK-NEXT:            <key>line</key><integer>31</integer>
642  // CHECK-NEXT:            <key>col</key><integer>9</integer>
643  // CHECK-NEXT:            <key>file</key><integer>0</integer>
644  // CHECK-NEXT:           </dict>
645  // CHECK-NEXT:          </array>
646  // CHECK-NEXT:         <key>end</key>
647  // CHECK-NEXT:          <array>
648  // CHECK-NEXT:           <dict>
649  // CHECK-NEXT:            <key>line</key><integer>33</integer>
650  // CHECK-NEXT:            <key>col</key><integer>9</integer>
651  // CHECK-NEXT:            <key>file</key><integer>0</integer>
652  // CHECK-NEXT:           </dict>
653  // CHECK-NEXT:           <dict>
654  // CHECK-NEXT:            <key>line</key><integer>33</integer>
655  // CHECK-NEXT:            <key>col</key><integer>14</integer>
656  // CHECK-NEXT:            <key>file</key><integer>0</integer>
657  // CHECK-NEXT:           </dict>
658  // CHECK-NEXT:          </array>
659  // CHECK-NEXT:        </dict>
660  // CHECK-NEXT:       </array>
661  // CHECK-NEXT:     </dict>
662  // CHECK-NEXT:     <dict>
663  // CHECK-NEXT:      <key>kind</key><string>event</string>
664  // CHECK-NEXT:      <key>location</key>
665  // CHECK-NEXT:      <dict>
666  // CHECK-NEXT:       <key>line</key><integer>40</integer>
667  // CHECK-NEXT:       <key>col</key><integer>5</integer>
668  // CHECK-NEXT:       <key>file</key><integer>0</integer>
669  // CHECK-NEXT:      </dict>
670  // CHECK-NEXT:      <key>ranges</key>
671  // CHECK-NEXT:      <array>
672  // CHECK-NEXT:        <array>
673  // CHECK-NEXT:         <dict>
674  // CHECK-NEXT:          <key>line</key><integer>40</integer>
675  // CHECK-NEXT:          <key>col</key><integer>5</integer>
676  // CHECK-NEXT:          <key>file</key><integer>0</integer>
677  // CHECK-NEXT:         </dict>
678  // CHECK-NEXT:         <dict>
679  // CHECK-NEXT:          <key>line</key><integer>40</integer>
680  // CHECK-NEXT:          <key>col</key><integer>21</integer>
681  // CHECK-NEXT:          <key>file</key><integer>0</integer>
682  // CHECK-NEXT:         </dict>
683  // CHECK-NEXT:        </array>
684  // CHECK-NEXT:      </array>
685  // CHECK-NEXT:      <key>depth</key><integer>0</integer>
686  // CHECK-NEXT:      <key>extended_message</key>
687  // CHECK-NEXT:      <string>Returning from &apos;initArray&apos;</string>
688  // CHECK-NEXT:      <key>message</key>
689  // CHECK-NEXT:      <string>Returning from &apos;initArray&apos;</string>
690  // CHECK-NEXT:     </dict>
691  // CHECK-NEXT:     <dict>
692  // CHECK-NEXT:      <key>kind</key><string>control</string>
693  // CHECK-NEXT:      <key>edges</key>
694  // CHECK-NEXT:       <array>
695  // CHECK-NEXT:        <dict>
696  // CHECK-NEXT:         <key>start</key>
697  // CHECK-NEXT:          <array>
698  // CHECK-NEXT:           <dict>
699  // CHECK-NEXT:            <key>line</key><integer>40</integer>
700  // CHECK-NEXT:            <key>col</key><integer>5</integer>
701  // CHECK-NEXT:            <key>file</key><integer>0</integer>
702  // CHECK-NEXT:           </dict>
703  // CHECK-NEXT:           <dict>
704  // CHECK-NEXT:            <key>line</key><integer>40</integer>
705  // CHECK-NEXT:            <key>col</key><integer>13</integer>
706  // CHECK-NEXT:            <key>file</key><integer>0</integer>
707  // CHECK-NEXT:           </dict>
708  // CHECK-NEXT:          </array>
709  // CHECK-NEXT:         <key>end</key>
710  // CHECK-NEXT:          <array>
711  // CHECK-NEXT:           <dict>
712  // CHECK-NEXT:            <key>line</key><integer>42</integer>
713  // CHECK-NEXT:            <key>col</key><integer>14</integer>
714  // CHECK-NEXT:            <key>file</key><integer>0</integer>
715  // CHECK-NEXT:           </dict>
716  // CHECK-NEXT:           <dict>
717  // CHECK-NEXT:            <key>line</key><integer>42</integer>
718  // CHECK-NEXT:            <key>col</key><integer>14</integer>
719  // CHECK-NEXT:            <key>file</key><integer>0</integer>
720  // CHECK-NEXT:           </dict>
721  // CHECK-NEXT:          </array>
722  // CHECK-NEXT:        </dict>
723  // CHECK-NEXT:       </array>
724  // CHECK-NEXT:     </dict>
725  // CHECK-NEXT:     <dict>
726  // CHECK-NEXT:      <key>kind</key><string>event</string>
727  // CHECK-NEXT:      <key>location</key>
728  // CHECK-NEXT:      <dict>
729  // CHECK-NEXT:       <key>line</key><integer>42</integer>
730  // CHECK-NEXT:       <key>col</key><integer>14</integer>
731  // CHECK-NEXT:       <key>file</key><integer>0</integer>
732  // CHECK-NEXT:      </dict>
733  // CHECK-NEXT:      <key>ranges</key>
734  // CHECK-NEXT:      <array>
735  // CHECK-NEXT:        <array>
736  // CHECK-NEXT:         <dict>
737  // CHECK-NEXT:          <key>line</key><integer>42</integer>
738  // CHECK-NEXT:          <key>col</key><integer>16</integer>
739  // CHECK-NEXT:          <key>file</key><integer>0</integer>
740  // CHECK-NEXT:         </dict>
741  // CHECK-NEXT:         <dict>
742  // CHECK-NEXT:          <key>line</key><integer>42</integer>
743  // CHECK-NEXT:          <key>col</key><integer>21</integer>
744  // CHECK-NEXT:          <key>file</key><integer>0</integer>
745  // CHECK-NEXT:         </dict>
746  // CHECK-NEXT:        </array>
747  // CHECK-NEXT:      </array>
748  // CHECK-NEXT:      <key>depth</key><integer>0</integer>
749  // CHECK-NEXT:      <key>extended_message</key>
750  // CHECK-NEXT:      <string>The right operand of &apos;*&apos; is a garbage value</string>
751  // CHECK-NEXT:      <key>message</key>
752  // CHECK-NEXT:      <string>The right operand of &apos;*&apos; is a garbage value</string>
753  // CHECK-NEXT:     </dict>
754  // CHECK-NEXT:    </array>
755  // CHECK-NEXT:    <key>description</key><string>The right operand of &apos;*&apos; is a garbage value</string>
756  // CHECK-NEXT:    <key>category</key><string>Logic error</string>
757  // CHECK-NEXT:    <key>type</key><string>Result of operation is garbage or undefined</string>
758  // CHECK-NEXT:    <key>check_name</key><string>core.UndefinedBinaryOperatorResult</string>
759  // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
760  // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>96cf3258da3df14d13cd5c2236c9cb27</string>
761  // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
762  // CHECK-NEXT:   <key>issue_context</key><string>testPassingParentRegionArray</string>
763  // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>4</string>
764  // CHECK-NEXT:   <key>location</key>
765  // CHECK-NEXT:   <dict>
766  // CHECK-NEXT:    <key>line</key><integer>42</integer>
767  // CHECK-NEXT:    <key>col</key><integer>14</integer>
768  // CHECK-NEXT:    <key>file</key><integer>0</integer>
769  // CHECK-NEXT:   </dict>
770  // CHECK-NEXT:   </dict>
771  // CHECK-NEXT:   <dict>
772  // CHECK-NEXT:    <key>path</key>
773  // CHECK-NEXT:    <array>
774  // CHECK-NEXT:     <dict>
775  // CHECK-NEXT:      <key>kind</key><string>control</string>
776  // CHECK-NEXT:      <key>edges</key>
777  // CHECK-NEXT:       <array>
778  // CHECK-NEXT:        <dict>
779  // CHECK-NEXT:         <key>start</key>
780  // CHECK-NEXT:          <array>
781  // CHECK-NEXT:           <dict>
782  // CHECK-NEXT:            <key>line</key><integer>58</integer>
783  // CHECK-NEXT:            <key>col</key><integer>3</integer>
784  // CHECK-NEXT:            <key>file</key><integer>0</integer>
785  // CHECK-NEXT:           </dict>
786  // CHECK-NEXT:           <dict>
787  // CHECK-NEXT:            <key>line</key><integer>58</integer>
788  // CHECK-NEXT:            <key>col</key><integer>8</integer>
789  // CHECK-NEXT:            <key>file</key><integer>0</integer>
790  // CHECK-NEXT:           </dict>
791  // CHECK-NEXT:          </array>
792  // CHECK-NEXT:         <key>end</key>
793  // CHECK-NEXT:          <array>
794  // CHECK-NEXT:           <dict>
795  // CHECK-NEXT:            <key>line</key><integer>59</integer>
796  // CHECK-NEXT:            <key>col</key><integer>3</integer>
797  // CHECK-NEXT:            <key>file</key><integer>0</integer>
798  // CHECK-NEXT:           </dict>
799  // CHECK-NEXT:           <dict>
800  // CHECK-NEXT:            <key>line</key><integer>59</integer>
801  // CHECK-NEXT:            <key>col</key><integer>4</integer>
802  // CHECK-NEXT:            <key>file</key><integer>0</integer>
803  // CHECK-NEXT:           </dict>
804  // CHECK-NEXT:          </array>
805  // CHECK-NEXT:        </dict>
806  // CHECK-NEXT:       </array>
807  // CHECK-NEXT:     </dict>
808  // CHECK-NEXT:     <dict>
809  // CHECK-NEXT:      <key>kind</key><string>event</string>
810  // CHECK-NEXT:      <key>location</key>
811  // CHECK-NEXT:      <dict>
812  // CHECK-NEXT:       <key>line</key><integer>59</integer>
813  // CHECK-NEXT:       <key>col</key><integer>3</integer>
814  // CHECK-NEXT:       <key>file</key><integer>0</integer>
815  // CHECK-NEXT:      </dict>
816  // CHECK-NEXT:      <key>ranges</key>
817  // CHECK-NEXT:      <array>
818  // CHECK-NEXT:        <array>
819  // CHECK-NEXT:         <dict>
820  // CHECK-NEXT:          <key>line</key><integer>59</integer>
821  // CHECK-NEXT:          <key>col</key><integer>3</integer>
822  // CHECK-NEXT:          <key>file</key><integer>0</integer>
823  // CHECK-NEXT:         </dict>
824  // CHECK-NEXT:         <dict>
825  // CHECK-NEXT:          <key>line</key><integer>59</integer>
826  // CHECK-NEXT:          <key>col</key><integer>11</integer>
827  // CHECK-NEXT:          <key>file</key><integer>0</integer>
828  // CHECK-NEXT:         </dict>
829  // CHECK-NEXT:        </array>
830  // CHECK-NEXT:      </array>
831  // CHECK-NEXT:      <key>depth</key><integer>0</integer>
832  // CHECK-NEXT:      <key>extended_message</key>
833  // CHECK-NEXT:      <string>Null pointer value stored to &apos;st.f1&apos;</string>
834  // CHECK-NEXT:      <key>message</key>
835  // CHECK-NEXT:      <string>Null pointer value stored to &apos;st.f1&apos;</string>
836  // CHECK-NEXT:     </dict>
837  // CHECK-NEXT:     <dict>
838  // CHECK-NEXT:      <key>kind</key><string>control</string>
839  // CHECK-NEXT:      <key>edges</key>
840  // CHECK-NEXT:       <array>
841  // CHECK-NEXT:        <dict>
842  // CHECK-NEXT:         <key>start</key>
843  // CHECK-NEXT:          <array>
844  // CHECK-NEXT:           <dict>
845  // CHECK-NEXT:            <key>line</key><integer>59</integer>
846  // CHECK-NEXT:            <key>col</key><integer>3</integer>
847  // CHECK-NEXT:            <key>file</key><integer>0</integer>
848  // CHECK-NEXT:           </dict>
849  // CHECK-NEXT:           <dict>
850  // CHECK-NEXT:            <key>line</key><integer>59</integer>
851  // CHECK-NEXT:            <key>col</key><integer>4</integer>
852  // CHECK-NEXT:            <key>file</key><integer>0</integer>
853  // CHECK-NEXT:           </dict>
854  // CHECK-NEXT:          </array>
855  // CHECK-NEXT:         <key>end</key>
856  // CHECK-NEXT:          <array>
857  // CHECK-NEXT:           <dict>
858  // CHECK-NEXT:            <key>line</key><integer>60</integer>
859  // CHECK-NEXT:            <key>col</key><integer>3</integer>
860  // CHECK-NEXT:            <key>file</key><integer>0</integer>
861  // CHECK-NEXT:           </dict>
862  // CHECK-NEXT:           <dict>
863  // CHECK-NEXT:            <key>line</key><integer>60</integer>
864  // CHECK-NEXT:            <key>col</key><integer>12</integer>
865  // CHECK-NEXT:            <key>file</key><integer>0</integer>
866  // CHECK-NEXT:           </dict>
867  // CHECK-NEXT:          </array>
868  // CHECK-NEXT:        </dict>
869  // CHECK-NEXT:       </array>
870  // CHECK-NEXT:     </dict>
871  // CHECK-NEXT:     <dict>
872  // CHECK-NEXT:      <key>kind</key><string>event</string>
873  // CHECK-NEXT:      <key>location</key>
874  // CHECK-NEXT:      <dict>
875  // CHECK-NEXT:       <key>line</key><integer>60</integer>
876  // CHECK-NEXT:       <key>col</key><integer>3</integer>
877  // CHECK-NEXT:       <key>file</key><integer>0</integer>
878  // CHECK-NEXT:      </dict>
879  // CHECK-NEXT:      <key>ranges</key>
880  // CHECK-NEXT:      <array>
881  // CHECK-NEXT:        <array>
882  // CHECK-NEXT:         <dict>
883  // CHECK-NEXT:          <key>line</key><integer>60</integer>
884  // CHECK-NEXT:          <key>col</key><integer>3</integer>
885  // CHECK-NEXT:          <key>file</key><integer>0</integer>
886  // CHECK-NEXT:         </dict>
887  // CHECK-NEXT:         <dict>
888  // CHECK-NEXT:          <key>line</key><integer>60</integer>
889  // CHECK-NEXT:          <key>col</key><integer>20</integer>
890  // CHECK-NEXT:          <key>file</key><integer>0</integer>
891  // CHECK-NEXT:         </dict>
892  // CHECK-NEXT:        </array>
893  // CHECK-NEXT:      </array>
894  // CHECK-NEXT:      <key>depth</key><integer>0</integer>
895  // CHECK-NEXT:      <key>extended_message</key>
896  // CHECK-NEXT:      <string>Calling &apos;initStruct&apos;</string>
897  // CHECK-NEXT:      <key>message</key>
898  // CHECK-NEXT:      <string>Calling &apos;initStruct&apos;</string>
899  // CHECK-NEXT:     </dict>
900  // CHECK-NEXT:     <dict>
901  // CHECK-NEXT:      <key>kind</key><string>event</string>
902  // CHECK-NEXT:      <key>location</key>
903  // CHECK-NEXT:      <dict>
904  // CHECK-NEXT:       <key>line</key><integer>50</integer>
905  // CHECK-NEXT:       <key>col</key><integer>1</integer>
906  // CHECK-NEXT:       <key>file</key><integer>0</integer>
907  // CHECK-NEXT:      </dict>
908  // CHECK-NEXT:      <key>depth</key><integer>1</integer>
909  // CHECK-NEXT:      <key>extended_message</key>
910  // CHECK-NEXT:      <string>Entered call from &apos;testPassingParentRegionStruct&apos;</string>
911  // CHECK-NEXT:      <key>message</key>
912  // CHECK-NEXT:      <string>Entered call from &apos;testPassingParentRegionStruct&apos;</string>
913  // CHECK-NEXT:     </dict>
914  // CHECK-NEXT:     <dict>
915  // CHECK-NEXT:      <key>kind</key><string>control</string>
916  // CHECK-NEXT:      <key>edges</key>
917  // CHECK-NEXT:       <array>
918  // CHECK-NEXT:        <dict>
919  // CHECK-NEXT:         <key>start</key>
920  // CHECK-NEXT:          <array>
921  // CHECK-NEXT:           <dict>
922  // CHECK-NEXT:            <key>line</key><integer>50</integer>
923  // CHECK-NEXT:            <key>col</key><integer>1</integer>
924  // CHECK-NEXT:            <key>file</key><integer>0</integer>
925  // CHECK-NEXT:           </dict>
926  // CHECK-NEXT:           <dict>
927  // CHECK-NEXT:            <key>line</key><integer>50</integer>
928  // CHECK-NEXT:            <key>col</key><integer>4</integer>
929  // CHECK-NEXT:            <key>file</key><integer>0</integer>
930  // CHECK-NEXT:           </dict>
931  // CHECK-NEXT:          </array>
932  // CHECK-NEXT:         <key>end</key>
933  // CHECK-NEXT:          <array>
934  // CHECK-NEXT:           <dict>
935  // CHECK-NEXT:            <key>line</key><integer>51</integer>
936  // CHECK-NEXT:            <key>col</key><integer>3</integer>
937  // CHECK-NEXT:            <key>file</key><integer>0</integer>
938  // CHECK-NEXT:           </dict>
939  // CHECK-NEXT:           <dict>
940  // CHECK-NEXT:            <key>line</key><integer>51</integer>
941  // CHECK-NEXT:            <key>col</key><integer>4</integer>
942  // CHECK-NEXT:            <key>file</key><integer>0</integer>
943  // CHECK-NEXT:           </dict>
944  // CHECK-NEXT:          </array>
945  // CHECK-NEXT:        </dict>
946  // CHECK-NEXT:       </array>
947  // CHECK-NEXT:     </dict>
948  // CHECK-NEXT:     <dict>
949  // CHECK-NEXT:      <key>kind</key><string>control</string>
950  // CHECK-NEXT:      <key>edges</key>
951  // CHECK-NEXT:       <array>
952  // CHECK-NEXT:        <dict>
953  // CHECK-NEXT:         <key>start</key>
954  // CHECK-NEXT:          <array>
955  // CHECK-NEXT:           <dict>
956  // CHECK-NEXT:            <key>line</key><integer>51</integer>
957  // CHECK-NEXT:            <key>col</key><integer>3</integer>
958  // CHECK-NEXT:            <key>file</key><integer>0</integer>
959  // CHECK-NEXT:           </dict>
960  // CHECK-NEXT:           <dict>
961  // CHECK-NEXT:            <key>line</key><integer>51</integer>
962  // CHECK-NEXT:            <key>col</key><integer>4</integer>
963  // CHECK-NEXT:            <key>file</key><integer>0</integer>
964  // CHECK-NEXT:           </dict>
965  // CHECK-NEXT:          </array>
966  // CHECK-NEXT:         <key>end</key>
967  // CHECK-NEXT:          <array>
968  // CHECK-NEXT:           <dict>
969  // CHECK-NEXT:            <key>line</key><integer>51</integer>
970  // CHECK-NEXT:            <key>col</key><integer>7</integer>
971  // CHECK-NEXT:            <key>file</key><integer>0</integer>
972  // CHECK-NEXT:           </dict>
973  // CHECK-NEXT:           <dict>
974  // CHECK-NEXT:            <key>line</key><integer>51</integer>
975  // CHECK-NEXT:            <key>col</key><integer>7</integer>
976  // CHECK-NEXT:            <key>file</key><integer>0</integer>
977  // CHECK-NEXT:           </dict>
978  // CHECK-NEXT:          </array>
979  // CHECK-NEXT:        </dict>
980  // CHECK-NEXT:       </array>
981  // CHECK-NEXT:     </dict>
982  // CHECK-NEXT:     <dict>
983  // CHECK-NEXT:      <key>kind</key><string>event</string>
984  // CHECK-NEXT:      <key>location</key>
985  // CHECK-NEXT:      <dict>
986  // CHECK-NEXT:       <key>line</key><integer>51</integer>
987  // CHECK-NEXT:       <key>col</key><integer>7</integer>
988  // CHECK-NEXT:       <key>file</key><integer>0</integer>
989  // CHECK-NEXT:      </dict>
990  // CHECK-NEXT:      <key>ranges</key>
991  // CHECK-NEXT:      <array>
992  // CHECK-NEXT:        <array>
993  // CHECK-NEXT:         <dict>
994  // CHECK-NEXT:          <key>line</key><integer>51</integer>
995  // CHECK-NEXT:          <key>col</key><integer>7</integer>
996  // CHECK-NEXT:          <key>file</key><integer>0</integer>
997  // CHECK-NEXT:         </dict>
998  // CHECK-NEXT:         <dict>
999  // CHECK-NEXT:          <key>line</key><integer>51</integer>
1000  // CHECK-NEXT:          <key>col</key><integer>12</integer>
1001  // CHECK-NEXT:          <key>file</key><integer>0</integer>
1002  // CHECK-NEXT:         </dict>
1003  // CHECK-NEXT:        </array>
1004  // CHECK-NEXT:      </array>
1005  // CHECK-NEXT:      <key>depth</key><integer>1</integer>
1006  // CHECK-NEXT:      <key>extended_message</key>
1007  // CHECK-NEXT:      <string>Assuming &apos;x&apos; is &lt;= 0</string>
1008  // CHECK-NEXT:      <key>message</key>
1009  // CHECK-NEXT:      <string>Assuming &apos;x&apos; is &lt;= 0</string>
1010  // CHECK-NEXT:     </dict>
1011  // CHECK-NEXT:     <dict>
1012  // CHECK-NEXT:      <key>kind</key><string>control</string>
1013  // CHECK-NEXT:      <key>edges</key>
1014  // CHECK-NEXT:       <array>
1015  // CHECK-NEXT:        <dict>
1016  // CHECK-NEXT:         <key>start</key>
1017  // CHECK-NEXT:          <array>
1018  // CHECK-NEXT:           <dict>
1019  // CHECK-NEXT:            <key>line</key><integer>51</integer>
1020  // CHECK-NEXT:            <key>col</key><integer>7</integer>
1021  // CHECK-NEXT:            <key>file</key><integer>0</integer>
1022  // CHECK-NEXT:           </dict>
1023  // CHECK-NEXT:           <dict>
1024  // CHECK-NEXT:            <key>line</key><integer>51</integer>
1025  // CHECK-NEXT:            <key>col</key><integer>7</integer>
1026  // CHECK-NEXT:            <key>file</key><integer>0</integer>
1027  // CHECK-NEXT:           </dict>
1028  // CHECK-NEXT:          </array>
1029  // CHECK-NEXT:         <key>end</key>
1030  // CHECK-NEXT:          <array>
1031  // CHECK-NEXT:           <dict>
1032  // CHECK-NEXT:            <key>line</key><integer>54</integer>
1033  // CHECK-NEXT:            <key>col</key><integer>5</integer>
1034  // CHECK-NEXT:            <key>file</key><integer>0</integer>
1035  // CHECK-NEXT:           </dict>
1036  // CHECK-NEXT:           <dict>
1037  // CHECK-NEXT:            <key>line</key><integer>54</integer>
1038  // CHECK-NEXT:            <key>col</key><integer>10</integer>
1039  // CHECK-NEXT:            <key>file</key><integer>0</integer>
1040  // CHECK-NEXT:           </dict>
1041  // CHECK-NEXT:          </array>
1042  // CHECK-NEXT:        </dict>
1043  // CHECK-NEXT:       </array>
1044  // CHECK-NEXT:     </dict>
1045  // CHECK-NEXT:     <dict>
1046  // CHECK-NEXT:      <key>kind</key><string>event</string>
1047  // CHECK-NEXT:      <key>location</key>
1048  // CHECK-NEXT:      <dict>
1049  // CHECK-NEXT:       <key>line</key><integer>60</integer>
1050  // CHECK-NEXT:       <key>col</key><integer>3</integer>
1051  // CHECK-NEXT:       <key>file</key><integer>0</integer>
1052  // CHECK-NEXT:      </dict>
1053  // CHECK-NEXT:      <key>ranges</key>
1054  // CHECK-NEXT:      <array>
1055  // CHECK-NEXT:        <array>
1056  // CHECK-NEXT:         <dict>
1057  // CHECK-NEXT:          <key>line</key><integer>60</integer>
1058  // CHECK-NEXT:          <key>col</key><integer>3</integer>
1059  // CHECK-NEXT:          <key>file</key><integer>0</integer>
1060  // CHECK-NEXT:         </dict>
1061  // CHECK-NEXT:         <dict>
1062  // CHECK-NEXT:          <key>line</key><integer>60</integer>
1063  // CHECK-NEXT:          <key>col</key><integer>20</integer>
1064  // CHECK-NEXT:          <key>file</key><integer>0</integer>
1065  // CHECK-NEXT:         </dict>
1066  // CHECK-NEXT:        </array>
1067  // CHECK-NEXT:      </array>
1068  // CHECK-NEXT:      <key>depth</key><integer>0</integer>
1069  // CHECK-NEXT:      <key>extended_message</key>
1070  // CHECK-NEXT:      <string>Returning from &apos;initStruct&apos;</string>
1071  // CHECK-NEXT:      <key>message</key>
1072  // CHECK-NEXT:      <string>Returning from &apos;initStruct&apos;</string>
1073  // CHECK-NEXT:     </dict>
1074  // CHECK-NEXT:     <dict>
1075  // CHECK-NEXT:      <key>kind</key><string>control</string>
1076  // CHECK-NEXT:      <key>edges</key>
1077  // CHECK-NEXT:       <array>
1078  // CHECK-NEXT:        <dict>
1079  // CHECK-NEXT:         <key>start</key>
1080  // CHECK-NEXT:          <array>
1081  // CHECK-NEXT:           <dict>
1082  // CHECK-NEXT:            <key>line</key><integer>60</integer>
1083  // CHECK-NEXT:            <key>col</key><integer>3</integer>
1084  // CHECK-NEXT:            <key>file</key><integer>0</integer>
1085  // CHECK-NEXT:           </dict>
1086  // CHECK-NEXT:           <dict>
1087  // CHECK-NEXT:            <key>line</key><integer>60</integer>
1088  // CHECK-NEXT:            <key>col</key><integer>12</integer>
1089  // CHECK-NEXT:            <key>file</key><integer>0</integer>
1090  // CHECK-NEXT:           </dict>
1091  // CHECK-NEXT:          </array>
1092  // CHECK-NEXT:         <key>end</key>
1093  // CHECK-NEXT:          <array>
1094  // CHECK-NEXT:           <dict>
1095  // CHECK-NEXT:            <key>line</key><integer>62</integer>
1096  // CHECK-NEXT:            <key>col</key><integer>3</integer>
1097  // CHECK-NEXT:            <key>file</key><integer>0</integer>
1098  // CHECK-NEXT:           </dict>
1099  // CHECK-NEXT:           <dict>
1100  // CHECK-NEXT:            <key>line</key><integer>62</integer>
1101  // CHECK-NEXT:            <key>col</key><integer>8</integer>
1102  // CHECK-NEXT:            <key>file</key><integer>0</integer>
1103  // CHECK-NEXT:           </dict>
1104  // CHECK-NEXT:          </array>
1105  // CHECK-NEXT:        </dict>
1106  // CHECK-NEXT:       </array>
1107  // CHECK-NEXT:     </dict>
1108  // CHECK-NEXT:     <dict>
1109  // CHECK-NEXT:      <key>kind</key><string>control</string>
1110  // CHECK-NEXT:      <key>edges</key>
1111  // CHECK-NEXT:       <array>
1112  // CHECK-NEXT:        <dict>
1113  // CHECK-NEXT:         <key>start</key>
1114  // CHECK-NEXT:          <array>
1115  // CHECK-NEXT:           <dict>
1116  // CHECK-NEXT:            <key>line</key><integer>62</integer>
1117  // CHECK-NEXT:            <key>col</key><integer>3</integer>
1118  // CHECK-NEXT:            <key>file</key><integer>0</integer>
1119  // CHECK-NEXT:           </dict>
1120  // CHECK-NEXT:           <dict>
1121  // CHECK-NEXT:            <key>line</key><integer>62</integer>
1122  // CHECK-NEXT:            <key>col</key><integer>8</integer>
1123  // CHECK-NEXT:            <key>file</key><integer>0</integer>
1124  // CHECK-NEXT:           </dict>
1125  // CHECK-NEXT:          </array>
1126  // CHECK-NEXT:         <key>end</key>
1127  // CHECK-NEXT:          <array>
1128  // CHECK-NEXT:           <dict>
1129  // CHECK-NEXT:            <key>line</key><integer>62</integer>
1130  // CHECK-NEXT:            <key>col</key><integer>10</integer>
1131  // CHECK-NEXT:            <key>file</key><integer>0</integer>
1132  // CHECK-NEXT:           </dict>
1133  // CHECK-NEXT:           <dict>
1134  // CHECK-NEXT:            <key>line</key><integer>62</integer>
1135  // CHECK-NEXT:            <key>col</key><integer>10</integer>
1136  // CHECK-NEXT:            <key>file</key><integer>0</integer>
1137  // CHECK-NEXT:           </dict>
1138  // CHECK-NEXT:          </array>
1139  // CHECK-NEXT:        </dict>
1140  // CHECK-NEXT:       </array>
1141  // CHECK-NEXT:     </dict>
1142  // CHECK-NEXT:     <dict>
1143  // CHECK-NEXT:      <key>kind</key><string>event</string>
1144  // CHECK-NEXT:      <key>location</key>
1145  // CHECK-NEXT:      <dict>
1146  // CHECK-NEXT:       <key>line</key><integer>62</integer>
1147  // CHECK-NEXT:       <key>col</key><integer>10</integer>
1148  // CHECK-NEXT:       <key>file</key><integer>0</integer>
1149  // CHECK-NEXT:      </dict>
1150  // CHECK-NEXT:      <key>ranges</key>
1151  // CHECK-NEXT:      <array>
1152  // CHECK-NEXT:        <array>
1153  // CHECK-NEXT:         <dict>
1154  // CHECK-NEXT:          <key>line</key><integer>62</integer>
1155  // CHECK-NEXT:          <key>col</key><integer>15</integer>
1156  // CHECK-NEXT:          <key>file</key><integer>0</integer>
1157  // CHECK-NEXT:         </dict>
1158  // CHECK-NEXT:         <dict>
1159  // CHECK-NEXT:          <key>line</key><integer>62</integer>
1160  // CHECK-NEXT:          <key>col</key><integer>16</integer>
1161  // CHECK-NEXT:          <key>file</key><integer>0</integer>
1162  // CHECK-NEXT:         </dict>
1163  // CHECK-NEXT:        </array>
1164  // CHECK-NEXT:      </array>
1165  // CHECK-NEXT:      <key>depth</key><integer>0</integer>
1166  // CHECK-NEXT:      <key>extended_message</key>
1167  // CHECK-NEXT:      <string>Dereference of null pointer (loaded from field &apos;f1&apos;)</string>
1168  // CHECK-NEXT:      <key>message</key>
1169  // CHECK-NEXT:      <string>Dereference of null pointer (loaded from field &apos;f1&apos;)</string>
1170  // CHECK-NEXT:     </dict>
1171  // CHECK-NEXT:    </array>
1172  // CHECK-NEXT:    <key>description</key><string>Dereference of null pointer (loaded from field &apos;f1&apos;)</string>
1173  // CHECK-NEXT:    <key>category</key><string>Logic error</string>
1174  // CHECK-NEXT:    <key>type</key><string>Dereference of null pointer</string>
1175  // CHECK-NEXT:    <key>check_name</key><string>core.NullDereference</string>
1176  // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
1177  // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>299055864402de225b0ab4f2ecd8e76c</string>
1178  // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
1179  // CHECK-NEXT:   <key>issue_context</key><string>testPassingParentRegionStruct</string>
1180  // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>5</string>
1181  // CHECK-NEXT:   <key>location</key>
1182  // CHECK-NEXT:   <dict>
1183  // CHECK-NEXT:    <key>line</key><integer>62</integer>
1184  // CHECK-NEXT:    <key>col</key><integer>10</integer>
1185  // CHECK-NEXT:    <key>file</key><integer>0</integer>
1186  // CHECK-NEXT:   </dict>
1187  // CHECK-NEXT:   </dict>
1188  // CHECK-NEXT:  </array>
1189