diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2013-12-22 00:07:40 +0000 | 
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2013-12-22 00:07:40 +0000 | 
| commit | bfef399519ca9b8a4b4c6b563253bad7e0eeffe0 (patch) | |
| tree | df8df0b0067b381eab470a3b8f28d14a552a6340 /test/Analysis/plist-macros.cpp | |
| parent | 6a0372513edbc473b538d2f724efac50405d6fef (diff) | |
Diffstat (limited to 'test/Analysis/plist-macros.cpp')
| -rw-r--r-- | test/Analysis/plist-macros.cpp | 1597 | 
1 files changed, 1597 insertions, 0 deletions
| diff --git a/test/Analysis/plist-macros.cpp b/test/Analysis/plist-macros.cpp new file mode 100644 index 000000000000..0e8518a6f59c --- /dev/null +++ b/test/Analysis/plist-macros.cpp @@ -0,0 +1,1597 @@ +// RUN: %clang_cc1 -analyze -analyzer-checker=core,unix -analyzer-eagerly-assume -verify %s +// RUN: %clang_cc1 -analyze -analyzer-checker=core,unix -analyzer-eagerly-assume -analyzer-output=plist-multi-file -analyzer-config path-diagnostics-alternate=ture %s -o %t.plist +// RUN: FileCheck --input-file=%t.plist %s + + +typedef __typeof(sizeof(int)) size_t; +void *malloc(size_t); + +#define mallocmemory int *x = (int*)malloc(12); +void noteOnMacro(int y) { +  y++; +  y--; +  mallocmemory +  y++;  +  y++; +  delete x; // expected-warning {{Memory allocated by malloc() should be deallocated by free(), not 'delete'}} +} + +void macroIsFirstInFunction(int y) { +  mallocmemory  +  y++; // expected-warning {{Potential leak of memory pointed to by 'x'}} +} + +#define checkmacro p==0 +void macroInExpressionAux(bool b); +int macroInExpression(int *p, int y) {; +  y++; +  macroInExpressionAux(checkmacro); + +  return *p; // expected-warning {{Dereference of null pointer}} +} + +#define noPathNoteMacro y+y +int macroInExpressionNoNote(int *p, int y) {; +  y++; +  if (5 + noPathNoteMacro) +    if (p) +      ; +  return *p; // expected-warning {{Dereference of null pointer}} +} + +#define macroWithArg(mp) mp==0  +int macroWithArgInExpression(int *p, int y) {; +  y++; +  if (macroWithArg(p)) +    ; +  return *p; // expected-warning {{Dereference of null pointer}} +} + +#define multiNoteMacroWithError \ +  if (p) \ +    ;\ +  *p = 5; +int useMultiNoteMacroWithError(int *p, int y) {; +  y++; +  multiNoteMacroWithError  // expected-warning {{Dereference of null pointer}} + +  return *p; +} + +#define multiNoteMacro \ +if (p) \ +  ;\ +if (y) \ +  ; +int useMultiNote(int *p, int y) {; +  y++; +  multiNoteMacro + +  return *p; // expected-warning {{Dereference of null pointer}} +} + +#define CALL_FN(a) null_deref(a) + +void null_deref(int *a) { +  if (a) +    return; +  *a = 1; // expected-warning {{Dereference of null pointer}} +} + +void test1() { +  CALL_FN(0); +} + +void test2(int *p) { +  CALL_FN(p); +} +// CHECK:  <key>diagnostics</key> +// CHECK-NEXT:  <array> +// CHECK-NEXT:   <dict> +// CHECK-NEXT:    <key>path</key> +// CHECK-NEXT:    <array> +// CHECK-NEXT:     <dict> +// CHECK-NEXT:      <key>kind</key><string>control</string> +// CHECK-NEXT:      <key>edges</key> +// CHECK-NEXT:       <array> +// CHECK-NEXT:        <dict> +// CHECK-NEXT:         <key>start</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>11</integer> +// CHECK-NEXT:            <key>col</key><integer>3</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>11</integer> +// CHECK-NEXT:            <key>col</key><integer>3</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:         <key>end</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>13</integer> +// CHECK-NEXT:            <key>col</key><integer>3</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>13</integer> +// CHECK-NEXT:            <key>col</key><integer>14</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:        </dict> +// CHECK-NEXT:       </array> +// CHECK-NEXT:     </dict> +// CHECK-NEXT:     <dict> +// CHECK-NEXT:      <key>kind</key><string>event</string> +// CHECK-NEXT:      <key>location</key> +// CHECK-NEXT:      <dict> +// CHECK-NEXT:       <key>line</key><integer>13</integer> +// CHECK-NEXT:       <key>col</key><integer>3</integer> +// CHECK-NEXT:       <key>file</key><integer>0</integer> +// CHECK-NEXT:      </dict> +// CHECK-NEXT:      <key>ranges</key> +// CHECK-NEXT:      <array> +// CHECK-NEXT:        <array> +// CHECK-NEXT:         <dict> +// CHECK-NEXT:          <key>line</key><integer>13</integer> +// CHECK-NEXT:          <key>col</key><integer>3</integer> +// CHECK-NEXT:          <key>file</key><integer>0</integer> +// CHECK-NEXT:         </dict> +// CHECK-NEXT:         <dict> +// CHECK-NEXT:          <key>line</key><integer>13</integer> +// CHECK-NEXT:          <key>col</key><integer>14</integer> +// CHECK-NEXT:          <key>file</key><integer>0</integer> +// CHECK-NEXT:         </dict> +// CHECK-NEXT:        </array> +// CHECK-NEXT:      </array> +// CHECK-NEXT:      <key>depth</key><integer>0</integer> +// CHECK-NEXT:      <key>extended_message</key> +// CHECK-NEXT:      <string>Memory is allocated</string> +// CHECK-NEXT:      <key>message</key> +// CHECK-NEXT:      <string>Memory is allocated</string> +// CHECK-NEXT:     </dict> +// CHECK-NEXT:     <dict> +// CHECK-NEXT:      <key>kind</key><string>control</string> +// CHECK-NEXT:      <key>edges</key> +// CHECK-NEXT:       <array> +// CHECK-NEXT:        <dict> +// CHECK-NEXT:         <key>start</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>13</integer> +// CHECK-NEXT:            <key>col</key><integer>3</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>13</integer> +// CHECK-NEXT:            <key>col</key><integer>14</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:         <key>end</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>16</integer> +// CHECK-NEXT:            <key>col</key><integer>3</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>16</integer> +// CHECK-NEXT:            <key>col</key><integer>8</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:        </dict> +// CHECK-NEXT:       </array> +// CHECK-NEXT:     </dict> +// CHECK-NEXT:     <dict> +// CHECK-NEXT:      <key>kind</key><string>event</string> +// CHECK-NEXT:      <key>location</key> +// CHECK-NEXT:      <dict> +// CHECK-NEXT:       <key>line</key><integer>16</integer> +// CHECK-NEXT:       <key>col</key><integer>3</integer> +// CHECK-NEXT:       <key>file</key><integer>0</integer> +// CHECK-NEXT:      </dict> +// CHECK-NEXT:      <key>ranges</key> +// CHECK-NEXT:      <array> +// CHECK-NEXT:        <array> +// CHECK-NEXT:         <dict> +// CHECK-NEXT:          <key>line</key><integer>16</integer> +// CHECK-NEXT:          <key>col</key><integer>10</integer> +// CHECK-NEXT:          <key>file</key><integer>0</integer> +// CHECK-NEXT:         </dict> +// CHECK-NEXT:         <dict> +// CHECK-NEXT:          <key>line</key><integer>16</integer> +// CHECK-NEXT:          <key>col</key><integer>10</integer> +// CHECK-NEXT:          <key>file</key><integer>0</integer> +// CHECK-NEXT:         </dict> +// CHECK-NEXT:        </array> +// CHECK-NEXT:      </array> +// CHECK-NEXT:      <key>depth</key><integer>0</integer> +// CHECK-NEXT:      <key>extended_message</key> +// CHECK-NEXT:      <string>Memory allocated by malloc() should be deallocated by free(), not 'delete'</string> +// CHECK-NEXT:      <key>message</key> +// CHECK-NEXT:      <string>Memory allocated by malloc() should be deallocated by free(), not 'delete'</string> +// CHECK-NEXT:     </dict> +// CHECK-NEXT:    </array> +// CHECK-NEXT:    <key>description</key><string>Memory allocated by malloc() should be deallocated by free(), not 'delete'</string> +// CHECK-NEXT:    <key>category</key><string>Memory Error</string> +// CHECK-NEXT:    <key>type</key><string>Bad deallocator</string> +// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string> +// CHECK-NEXT:   <key>issue_context</key><string>noteOnMacro</string> +// CHECK-NEXT:   <key>issue_hash</key><string>6</string> +// CHECK-NEXT:   <key>location</key> +// CHECK-NEXT:   <dict> +// CHECK-NEXT:    <key>line</key><integer>16</integer> +// CHECK-NEXT:    <key>col</key><integer>3</integer> +// CHECK-NEXT:    <key>file</key><integer>0</integer> +// CHECK-NEXT:   </dict> +// CHECK-NEXT:   </dict> +// CHECK-NEXT:   <dict> +// CHECK-NEXT:    <key>path</key> +// CHECK-NEXT:    <array> +// CHECK-NEXT:     <dict> +// CHECK-NEXT:      <key>kind</key><string>event</string> +// CHECK-NEXT:      <key>location</key> +// CHECK-NEXT:      <dict> +// CHECK-NEXT:       <key>line</key><integer>20</integer> +// CHECK-NEXT:       <key>col</key><integer>3</integer> +// CHECK-NEXT:       <key>file</key><integer>0</integer> +// CHECK-NEXT:      </dict> +// CHECK-NEXT:      <key>ranges</key> +// CHECK-NEXT:      <array> +// CHECK-NEXT:        <array> +// CHECK-NEXT:         <dict> +// CHECK-NEXT:          <key>line</key><integer>20</integer> +// CHECK-NEXT:          <key>col</key><integer>3</integer> +// CHECK-NEXT:          <key>file</key><integer>0</integer> +// CHECK-NEXT:         </dict> +// CHECK-NEXT:         <dict> +// CHECK-NEXT:          <key>line</key><integer>20</integer> +// CHECK-NEXT:          <key>col</key><integer>14</integer> +// CHECK-NEXT:          <key>file</key><integer>0</integer> +// CHECK-NEXT:         </dict> +// CHECK-NEXT:        </array> +// CHECK-NEXT:      </array> +// CHECK-NEXT:      <key>depth</key><integer>0</integer> +// CHECK-NEXT:      <key>extended_message</key> +// CHECK-NEXT:      <string>Memory is allocated</string> +// CHECK-NEXT:      <key>message</key> +// CHECK-NEXT:      <string>Memory is allocated</string> +// CHECK-NEXT:     </dict> +// CHECK-NEXT:     <dict> +// CHECK-NEXT:      <key>kind</key><string>control</string> +// CHECK-NEXT:      <key>edges</key> +// CHECK-NEXT:       <array> +// CHECK-NEXT:        <dict> +// CHECK-NEXT:         <key>start</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>20</integer> +// CHECK-NEXT:            <key>col</key><integer>3</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>20</integer> +// CHECK-NEXT:            <key>col</key><integer>14</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:         <key>end</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>21</integer> +// CHECK-NEXT:            <key>col</key><integer>3</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>21</integer> +// CHECK-NEXT:            <key>col</key><integer>3</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:        </dict> +// CHECK-NEXT:       </array> +// CHECK-NEXT:     </dict> +// CHECK-NEXT:     <dict> +// CHECK-NEXT:      <key>kind</key><string>event</string> +// CHECK-NEXT:      <key>location</key> +// CHECK-NEXT:      <dict> +// CHECK-NEXT:       <key>line</key><integer>21</integer> +// CHECK-NEXT:       <key>col</key><integer>3</integer> +// CHECK-NEXT:       <key>file</key><integer>0</integer> +// CHECK-NEXT:      </dict> +// CHECK-NEXT:      <key>depth</key><integer>0</integer> +// CHECK-NEXT:      <key>extended_message</key> +// CHECK-NEXT:      <string>Potential leak of memory pointed to by 'x'</string> +// CHECK-NEXT:      <key>message</key> +// CHECK-NEXT:      <string>Potential leak of memory pointed to by 'x'</string> +// CHECK-NEXT:     </dict> +// CHECK-NEXT:    </array> +// CHECK-NEXT:    <key>description</key><string>Potential leak of memory pointed to by 'x'</string> +// CHECK-NEXT:    <key>category</key><string>Memory Error</string> +// CHECK-NEXT:    <key>type</key><string>Memory leak</string> +// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string> +// CHECK-NEXT:   <key>issue_context</key><string>macroIsFirstInFunction</string> +// CHECK-NEXT:   <key>issue_hash</key><string>1</string> +// CHECK-NEXT:   <key>location</key> +// CHECK-NEXT:   <dict> +// CHECK-NEXT:    <key>line</key><integer>21</integer> +// CHECK-NEXT:    <key>col</key><integer>3</integer> +// CHECK-NEXT:    <key>file</key><integer>0</integer> +// CHECK-NEXT:   </dict> +// CHECK-NEXT:   </dict> +// CHECK-NEXT:   <dict> +// CHECK-NEXT:    <key>path</key> +// CHECK-NEXT:    <array> +// CHECK-NEXT:     <dict> +// CHECK-NEXT:      <key>kind</key><string>control</string> +// CHECK-NEXT:      <key>edges</key> +// CHECK-NEXT:       <array> +// CHECK-NEXT:        <dict> +// CHECK-NEXT:         <key>start</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>27</integer> +// CHECK-NEXT:            <key>col</key><integer>3</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>27</integer> +// CHECK-NEXT:            <key>col</key><integer>3</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:         <key>end</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>28</integer> +// CHECK-NEXT:            <key>col</key><integer>3</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>28</integer> +// CHECK-NEXT:            <key>col</key><integer>22</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:        </dict> +// CHECK-NEXT:       </array> +// CHECK-NEXT:     </dict> +// CHECK-NEXT:     <dict> +// CHECK-NEXT:      <key>kind</key><string>control</string> +// CHECK-NEXT:      <key>edges</key> +// CHECK-NEXT:       <array> +// CHECK-NEXT:        <dict> +// CHECK-NEXT:         <key>start</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>28</integer> +// CHECK-NEXT:            <key>col</key><integer>3</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>28</integer> +// CHECK-NEXT:            <key>col</key><integer>22</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:         <key>end</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>28</integer> +// CHECK-NEXT:            <key>col</key><integer>24</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>28</integer> +// CHECK-NEXT:            <key>col</key><integer>33</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:        </dict> +// CHECK-NEXT:       </array> +// CHECK-NEXT:     </dict> +// CHECK-NEXT:     <dict> +// CHECK-NEXT:      <key>kind</key><string>event</string> +// CHECK-NEXT:      <key>location</key> +// CHECK-NEXT:      <dict> +// CHECK-NEXT:       <key>line</key><integer>28</integer> +// CHECK-NEXT:       <key>col</key><integer>24</integer> +// CHECK-NEXT:       <key>file</key><integer>0</integer> +// CHECK-NEXT:      </dict> +// CHECK-NEXT:      <key>ranges</key> +// CHECK-NEXT:      <array> +// CHECK-NEXT:        <array> +// CHECK-NEXT:         <dict> +// CHECK-NEXT:          <key>line</key><integer>28</integer> +// CHECK-NEXT:          <key>col</key><integer>24</integer> +// CHECK-NEXT:          <key>file</key><integer>0</integer> +// CHECK-NEXT:         </dict> +// CHECK-NEXT:         <dict> +// CHECK-NEXT:          <key>line</key><integer>28</integer> +// CHECK-NEXT:          <key>col</key><integer>33</integer> +// CHECK-NEXT:          <key>file</key><integer>0</integer> +// CHECK-NEXT:         </dict> +// CHECK-NEXT:        </array> +// CHECK-NEXT:      </array> +// CHECK-NEXT:      <key>depth</key><integer>0</integer> +// CHECK-NEXT:      <key>extended_message</key> +// CHECK-NEXT:      <string>Assuming 'p' is equal to null</string> +// CHECK-NEXT:      <key>message</key> +// CHECK-NEXT:      <string>Assuming 'p' is equal to null</string> +// CHECK-NEXT:     </dict> +// CHECK-NEXT:     <dict> +// CHECK-NEXT:      <key>kind</key><string>control</string> +// CHECK-NEXT:      <key>edges</key> +// CHECK-NEXT:       <array> +// CHECK-NEXT:        <dict> +// CHECK-NEXT:         <key>start</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>28</integer> +// CHECK-NEXT:            <key>col</key><integer>24</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>28</integer> +// CHECK-NEXT:            <key>col</key><integer>33</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:         <key>end</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>28</integer> +// CHECK-NEXT:            <key>col</key><integer>3</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>28</integer> +// CHECK-NEXT:            <key>col</key><integer>22</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:        </dict> +// CHECK-NEXT:       </array> +// CHECK-NEXT:     </dict> +// CHECK-NEXT:     <dict> +// CHECK-NEXT:      <key>kind</key><string>control</string> +// CHECK-NEXT:      <key>edges</key> +// CHECK-NEXT:       <array> +// CHECK-NEXT:        <dict> +// CHECK-NEXT:         <key>start</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>28</integer> +// CHECK-NEXT:            <key>col</key><integer>3</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>28</integer> +// CHECK-NEXT:            <key>col</key><integer>22</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:         <key>end</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>30</integer> +// CHECK-NEXT:            <key>col</key><integer>3</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>30</integer> +// CHECK-NEXT:            <key>col</key><integer>8</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:        </dict> +// CHECK-NEXT:       </array> +// CHECK-NEXT:     </dict> +// CHECK-NEXT:     <dict> +// CHECK-NEXT:      <key>kind</key><string>control</string> +// CHECK-NEXT:      <key>edges</key> +// CHECK-NEXT:       <array> +// CHECK-NEXT:        <dict> +// CHECK-NEXT:         <key>start</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>30</integer> +// CHECK-NEXT:            <key>col</key><integer>3</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>30</integer> +// CHECK-NEXT:            <key>col</key><integer>8</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:         <key>end</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>30</integer> +// CHECK-NEXT:            <key>col</key><integer>10</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>30</integer> +// CHECK-NEXT:            <key>col</key><integer>10</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:        </dict> +// CHECK-NEXT:       </array> +// CHECK-NEXT:     </dict> +// CHECK-NEXT:     <dict> +// CHECK-NEXT:      <key>kind</key><string>event</string> +// CHECK-NEXT:      <key>location</key> +// CHECK-NEXT:      <dict> +// CHECK-NEXT:       <key>line</key><integer>30</integer> +// CHECK-NEXT:       <key>col</key><integer>10</integer> +// CHECK-NEXT:       <key>file</key><integer>0</integer> +// CHECK-NEXT:      </dict> +// CHECK-NEXT:      <key>ranges</key> +// CHECK-NEXT:      <array> +// CHECK-NEXT:        <array> +// CHECK-NEXT:         <dict> +// CHECK-NEXT:          <key>line</key><integer>30</integer> +// CHECK-NEXT:          <key>col</key><integer>11</integer> +// CHECK-NEXT:          <key>file</key><integer>0</integer> +// CHECK-NEXT:         </dict> +// CHECK-NEXT:         <dict> +// CHECK-NEXT:          <key>line</key><integer>30</integer> +// CHECK-NEXT:          <key>col</key><integer>11</integer> +// CHECK-NEXT:          <key>file</key><integer>0</integer> +// CHECK-NEXT:         </dict> +// CHECK-NEXT:        </array> +// CHECK-NEXT:      </array> +// CHECK-NEXT:      <key>depth</key><integer>0</integer> +// CHECK-NEXT:      <key>extended_message</key> +// CHECK-NEXT:      <string>Dereference of null pointer (loaded from variable 'p')</string> +// CHECK-NEXT:      <key>message</key> +// CHECK-NEXT:      <string>Dereference of null pointer (loaded from variable 'p')</string> +// CHECK-NEXT:     </dict> +// CHECK-NEXT:    </array> +// CHECK-NEXT:    <key>description</key><string>Dereference of null pointer (loaded from variable 'p')</string> +// CHECK-NEXT:    <key>category</key><string>Logic error</string> +// CHECK-NEXT:    <key>type</key><string>Dereference of null pointer</string> +// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string> +// CHECK-NEXT:   <key>issue_context</key><string>macroInExpression</string> +// CHECK-NEXT:   <key>issue_hash</key><string>4</string> +// CHECK-NEXT:   <key>location</key> +// CHECK-NEXT:   <dict> +// CHECK-NEXT:    <key>line</key><integer>30</integer> +// CHECK-NEXT:    <key>col</key><integer>10</integer> +// CHECK-NEXT:    <key>file</key><integer>0</integer> +// CHECK-NEXT:   </dict> +// CHECK-NEXT:   </dict> +// CHECK-NEXT:   <dict> +// CHECK-NEXT:    <key>path</key> +// CHECK-NEXT:    <array> +// CHECK-NEXT:     <dict> +// CHECK-NEXT:      <key>kind</key><string>control</string> +// CHECK-NEXT:      <key>edges</key> +// CHECK-NEXT:       <array> +// CHECK-NEXT:        <dict> +// CHECK-NEXT:         <key>start</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>35</integer> +// CHECK-NEXT:            <key>col</key><integer>3</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>35</integer> +// CHECK-NEXT:            <key>col</key><integer>3</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:         <key>end</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>36</integer> +// CHECK-NEXT:            <key>col</key><integer>3</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>36</integer> +// CHECK-NEXT:            <key>col</key><integer>4</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:        </dict> +// CHECK-NEXT:       </array> +// CHECK-NEXT:     </dict> +// CHECK-NEXT:     <dict> +// CHECK-NEXT:      <key>kind</key><string>control</string> +// CHECK-NEXT:      <key>edges</key> +// CHECK-NEXT:       <array> +// CHECK-NEXT:        <dict> +// CHECK-NEXT:         <key>start</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>36</integer> +// CHECK-NEXT:            <key>col</key><integer>3</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>36</integer> +// CHECK-NEXT:            <key>col</key><integer>4</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:         <key>end</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>37</integer> +// CHECK-NEXT:            <key>col</key><integer>5</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>37</integer> +// CHECK-NEXT:            <key>col</key><integer>6</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:        </dict> +// CHECK-NEXT:       </array> +// CHECK-NEXT:     </dict> +// CHECK-NEXT:     <dict> +// CHECK-NEXT:      <key>kind</key><string>control</string> +// CHECK-NEXT:      <key>edges</key> +// CHECK-NEXT:       <array> +// CHECK-NEXT:        <dict> +// CHECK-NEXT:         <key>start</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>37</integer> +// CHECK-NEXT:            <key>col</key><integer>5</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>37</integer> +// CHECK-NEXT:            <key>col</key><integer>6</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:         <key>end</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>37</integer> +// CHECK-NEXT:            <key>col</key><integer>9</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>37</integer> +// CHECK-NEXT:            <key>col</key><integer>9</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:        </dict> +// CHECK-NEXT:       </array> +// CHECK-NEXT:     </dict> +// CHECK-NEXT:     <dict> +// CHECK-NEXT:      <key>kind</key><string>event</string> +// CHECK-NEXT:      <key>location</key> +// CHECK-NEXT:      <dict> +// CHECK-NEXT:       <key>line</key><integer>37</integer> +// CHECK-NEXT:       <key>col</key><integer>9</integer> +// CHECK-NEXT:       <key>file</key><integer>0</integer> +// CHECK-NEXT:      </dict> +// CHECK-NEXT:      <key>ranges</key> +// CHECK-NEXT:      <array> +// CHECK-NEXT:        <array> +// CHECK-NEXT:         <dict> +// CHECK-NEXT:          <key>line</key><integer>37</integer> +// CHECK-NEXT:          <key>col</key><integer>9</integer> +// CHECK-NEXT:          <key>file</key><integer>0</integer> +// CHECK-NEXT:         </dict> +// CHECK-NEXT:         <dict> +// CHECK-NEXT:          <key>line</key><integer>37</integer> +// CHECK-NEXT:          <key>col</key><integer>9</integer> +// CHECK-NEXT:          <key>file</key><integer>0</integer> +// CHECK-NEXT:         </dict> +// CHECK-NEXT:        </array> +// CHECK-NEXT:      </array> +// CHECK-NEXT:      <key>depth</key><integer>0</integer> +// CHECK-NEXT:      <key>extended_message</key> +// CHECK-NEXT:      <string>Assuming 'p' is null</string> +// CHECK-NEXT:      <key>message</key> +// CHECK-NEXT:      <string>Assuming 'p' is null</string> +// CHECK-NEXT:     </dict> +// CHECK-NEXT:     <dict> +// CHECK-NEXT:      <key>kind</key><string>control</string> +// CHECK-NEXT:      <key>edges</key> +// CHECK-NEXT:       <array> +// CHECK-NEXT:        <dict> +// CHECK-NEXT:         <key>start</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>37</integer> +// CHECK-NEXT:            <key>col</key><integer>9</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>37</integer> +// CHECK-NEXT:            <key>col</key><integer>9</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:         <key>end</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>39</integer> +// CHECK-NEXT:            <key>col</key><integer>3</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>39</integer> +// CHECK-NEXT:            <key>col</key><integer>8</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:        </dict> +// CHECK-NEXT:       </array> +// CHECK-NEXT:     </dict> +// CHECK-NEXT:     <dict> +// CHECK-NEXT:      <key>kind</key><string>control</string> +// CHECK-NEXT:      <key>edges</key> +// CHECK-NEXT:       <array> +// CHECK-NEXT:        <dict> +// CHECK-NEXT:         <key>start</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>39</integer> +// CHECK-NEXT:            <key>col</key><integer>3</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>39</integer> +// CHECK-NEXT:            <key>col</key><integer>8</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:         <key>end</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>39</integer> +// CHECK-NEXT:            <key>col</key><integer>10</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>39</integer> +// CHECK-NEXT:            <key>col</key><integer>10</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:        </dict> +// CHECK-NEXT:       </array> +// CHECK-NEXT:     </dict> +// CHECK-NEXT:     <dict> +// CHECK-NEXT:      <key>kind</key><string>event</string> +// CHECK-NEXT:      <key>location</key> +// CHECK-NEXT:      <dict> +// CHECK-NEXT:       <key>line</key><integer>39</integer> +// CHECK-NEXT:       <key>col</key><integer>10</integer> +// CHECK-NEXT:       <key>file</key><integer>0</integer> +// CHECK-NEXT:      </dict> +// CHECK-NEXT:      <key>ranges</key> +// CHECK-NEXT:      <array> +// CHECK-NEXT:        <array> +// CHECK-NEXT:         <dict> +// CHECK-NEXT:          <key>line</key><integer>39</integer> +// CHECK-NEXT:          <key>col</key><integer>11</integer> +// CHECK-NEXT:          <key>file</key><integer>0</integer> +// CHECK-NEXT:         </dict> +// CHECK-NEXT:         <dict> +// CHECK-NEXT:          <key>line</key><integer>39</integer> +// CHECK-NEXT:          <key>col</key><integer>11</integer> +// CHECK-NEXT:          <key>file</key><integer>0</integer> +// CHECK-NEXT:         </dict> +// CHECK-NEXT:        </array> +// CHECK-NEXT:      </array> +// CHECK-NEXT:      <key>depth</key><integer>0</integer> +// CHECK-NEXT:      <key>extended_message</key> +// CHECK-NEXT:      <string>Dereference of null pointer (loaded from variable 'p')</string> +// CHECK-NEXT:      <key>message</key> +// CHECK-NEXT:      <string>Dereference of null pointer (loaded from variable 'p')</string> +// CHECK-NEXT:     </dict> +// CHECK-NEXT:    </array> +// CHECK-NEXT:    <key>description</key><string>Dereference of null pointer (loaded from variable 'p')</string> +// CHECK-NEXT:    <key>category</key><string>Logic error</string> +// CHECK-NEXT:    <key>type</key><string>Dereference of null pointer</string> +// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string> +// CHECK-NEXT:   <key>issue_context</key><string>macroInExpressionNoNote</string> +// CHECK-NEXT:   <key>issue_hash</key><string>5</string> +// CHECK-NEXT:   <key>location</key> +// CHECK-NEXT:   <dict> +// CHECK-NEXT:    <key>line</key><integer>39</integer> +// CHECK-NEXT:    <key>col</key><integer>10</integer> +// CHECK-NEXT:    <key>file</key><integer>0</integer> +// CHECK-NEXT:   </dict> +// CHECK-NEXT:   </dict> +// CHECK-NEXT:   <dict> +// CHECK-NEXT:    <key>path</key> +// CHECK-NEXT:    <array> +// CHECK-NEXT:     <dict> +// CHECK-NEXT:      <key>kind</key><string>control</string> +// CHECK-NEXT:      <key>edges</key> +// CHECK-NEXT:       <array> +// CHECK-NEXT:        <dict> +// CHECK-NEXT:         <key>start</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>44</integer> +// CHECK-NEXT:            <key>col</key><integer>3</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>44</integer> +// CHECK-NEXT:            <key>col</key><integer>3</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:         <key>end</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>45</integer> +// CHECK-NEXT:            <key>col</key><integer>3</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>45</integer> +// CHECK-NEXT:            <key>col</key><integer>4</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:        </dict> +// CHECK-NEXT:       </array> +// CHECK-NEXT:     </dict> +// CHECK-NEXT:     <dict> +// CHECK-NEXT:      <key>kind</key><string>control</string> +// CHECK-NEXT:      <key>edges</key> +// CHECK-NEXT:       <array> +// CHECK-NEXT:        <dict> +// CHECK-NEXT:         <key>start</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>45</integer> +// CHECK-NEXT:            <key>col</key><integer>3</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>45</integer> +// CHECK-NEXT:            <key>col</key><integer>4</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:         <key>end</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>45</integer> +// CHECK-NEXT:            <key>col</key><integer>7</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>45</integer> +// CHECK-NEXT:            <key>col</key><integer>18</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:        </dict> +// CHECK-NEXT:       </array> +// CHECK-NEXT:     </dict> +// CHECK-NEXT:     <dict> +// CHECK-NEXT:      <key>kind</key><string>event</string> +// CHECK-NEXT:      <key>location</key> +// CHECK-NEXT:      <dict> +// CHECK-NEXT:       <key>line</key><integer>45</integer> +// CHECK-NEXT:       <key>col</key><integer>7</integer> +// CHECK-NEXT:       <key>file</key><integer>0</integer> +// CHECK-NEXT:      </dict> +// CHECK-NEXT:      <key>ranges</key> +// CHECK-NEXT:      <array> +// CHECK-NEXT:        <array> +// CHECK-NEXT:         <dict> +// CHECK-NEXT:          <key>line</key><integer>45</integer> +// CHECK-NEXT:          <key>col</key><integer>7</integer> +// CHECK-NEXT:          <key>file</key><integer>0</integer> +// CHECK-NEXT:         </dict> +// CHECK-NEXT:         <dict> +// CHECK-NEXT:          <key>line</key><integer>45</integer> +// CHECK-NEXT:          <key>col</key><integer>18</integer> +// CHECK-NEXT:          <key>file</key><integer>0</integer> +// CHECK-NEXT:         </dict> +// CHECK-NEXT:        </array> +// CHECK-NEXT:      </array> +// CHECK-NEXT:      <key>depth</key><integer>0</integer> +// CHECK-NEXT:      <key>extended_message</key> +// CHECK-NEXT:      <string>Assuming 'p' is equal to null</string> +// CHECK-NEXT:      <key>message</key> +// CHECK-NEXT:      <string>Assuming 'p' is equal to null</string> +// CHECK-NEXT:     </dict> +// CHECK-NEXT:     <dict> +// CHECK-NEXT:      <key>kind</key><string>control</string> +// CHECK-NEXT:      <key>edges</key> +// CHECK-NEXT:       <array> +// CHECK-NEXT:        <dict> +// CHECK-NEXT:         <key>start</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>45</integer> +// CHECK-NEXT:            <key>col</key><integer>7</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>45</integer> +// CHECK-NEXT:            <key>col</key><integer>18</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:         <key>end</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>47</integer> +// CHECK-NEXT:            <key>col</key><integer>3</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>47</integer> +// CHECK-NEXT:            <key>col</key><integer>8</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:        </dict> +// CHECK-NEXT:       </array> +// CHECK-NEXT:     </dict> +// CHECK-NEXT:     <dict> +// CHECK-NEXT:      <key>kind</key><string>control</string> +// CHECK-NEXT:      <key>edges</key> +// CHECK-NEXT:       <array> +// CHECK-NEXT:        <dict> +// CHECK-NEXT:         <key>start</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>47</integer> +// CHECK-NEXT:            <key>col</key><integer>3</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>47</integer> +// CHECK-NEXT:            <key>col</key><integer>8</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:         <key>end</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>47</integer> +// CHECK-NEXT:            <key>col</key><integer>10</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>47</integer> +// CHECK-NEXT:            <key>col</key><integer>10</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:        </dict> +// CHECK-NEXT:       </array> +// CHECK-NEXT:     </dict> +// CHECK-NEXT:     <dict> +// CHECK-NEXT:      <key>kind</key><string>event</string> +// CHECK-NEXT:      <key>location</key> +// CHECK-NEXT:      <dict> +// CHECK-NEXT:       <key>line</key><integer>47</integer> +// CHECK-NEXT:       <key>col</key><integer>10</integer> +// CHECK-NEXT:       <key>file</key><integer>0</integer> +// CHECK-NEXT:      </dict> +// CHECK-NEXT:      <key>ranges</key> +// CHECK-NEXT:      <array> +// CHECK-NEXT:        <array> +// CHECK-NEXT:         <dict> +// CHECK-NEXT:          <key>line</key><integer>47</integer> +// CHECK-NEXT:          <key>col</key><integer>11</integer> +// CHECK-NEXT:          <key>file</key><integer>0</integer> +// CHECK-NEXT:         </dict> +// CHECK-NEXT:         <dict> +// CHECK-NEXT:          <key>line</key><integer>47</integer> +// CHECK-NEXT:          <key>col</key><integer>11</integer> +// CHECK-NEXT:          <key>file</key><integer>0</integer> +// CHECK-NEXT:         </dict> +// CHECK-NEXT:        </array> +// CHECK-NEXT:      </array> +// CHECK-NEXT:      <key>depth</key><integer>0</integer> +// CHECK-NEXT:      <key>extended_message</key> +// CHECK-NEXT:      <string>Dereference of null pointer (loaded from variable 'p')</string> +// CHECK-NEXT:      <key>message</key> +// CHECK-NEXT:      <string>Dereference of null pointer (loaded from variable 'p')</string> +// CHECK-NEXT:     </dict> +// CHECK-NEXT:    </array> +// CHECK-NEXT:    <key>description</key><string>Dereference of null pointer (loaded from variable 'p')</string> +// CHECK-NEXT:    <key>category</key><string>Logic error</string> +// CHECK-NEXT:    <key>type</key><string>Dereference of null pointer</string> +// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string> +// CHECK-NEXT:   <key>issue_context</key><string>macroWithArgInExpression</string> +// CHECK-NEXT:   <key>issue_hash</key><string>4</string> +// CHECK-NEXT:   <key>location</key> +// CHECK-NEXT:   <dict> +// CHECK-NEXT:    <key>line</key><integer>47</integer> +// CHECK-NEXT:    <key>col</key><integer>10</integer> +// CHECK-NEXT:    <key>file</key><integer>0</integer> +// CHECK-NEXT:   </dict> +// CHECK-NEXT:   </dict> +// CHECK-NEXT:   <dict> +// CHECK-NEXT:    <key>path</key> +// CHECK-NEXT:    <array> +// CHECK-NEXT:     <dict> +// CHECK-NEXT:      <key>kind</key><string>control</string> +// CHECK-NEXT:      <key>edges</key> +// CHECK-NEXT:       <array> +// CHECK-NEXT:        <dict> +// CHECK-NEXT:         <key>start</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>55</integer> +// CHECK-NEXT:            <key>col</key><integer>3</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>55</integer> +// CHECK-NEXT:            <key>col</key><integer>3</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:         <key>end</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>56</integer> +// CHECK-NEXT:            <key>col</key><integer>3</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>56</integer> +// CHECK-NEXT:            <key>col</key><integer>25</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:        </dict> +// CHECK-NEXT:       </array> +// CHECK-NEXT:     </dict> +// CHECK-NEXT:     <dict> +// CHECK-NEXT:      <key>kind</key><string>event</string> +// CHECK-NEXT:      <key>location</key> +// CHECK-NEXT:      <dict> +// CHECK-NEXT:       <key>line</key><integer>56</integer> +// CHECK-NEXT:       <key>col</key><integer>3</integer> +// CHECK-NEXT:       <key>file</key><integer>0</integer> +// CHECK-NEXT:      </dict> +// CHECK-NEXT:      <key>ranges</key> +// CHECK-NEXT:      <array> +// CHECK-NEXT:        <array> +// CHECK-NEXT:         <dict> +// CHECK-NEXT:          <key>line</key><integer>56</integer> +// CHECK-NEXT:          <key>col</key><integer>3</integer> +// CHECK-NEXT:          <key>file</key><integer>0</integer> +// CHECK-NEXT:         </dict> +// CHECK-NEXT:         <dict> +// CHECK-NEXT:          <key>line</key><integer>56</integer> +// CHECK-NEXT:          <key>col</key><integer>25</integer> +// CHECK-NEXT:          <key>file</key><integer>0</integer> +// CHECK-NEXT:         </dict> +// CHECK-NEXT:        </array> +// CHECK-NEXT:      </array> +// CHECK-NEXT:      <key>depth</key><integer>0</integer> +// CHECK-NEXT:      <key>extended_message</key> +// CHECK-NEXT:      <string>Assuming 'p' is null</string> +// CHECK-NEXT:      <key>message</key> +// CHECK-NEXT:      <string>Assuming 'p' is null</string> +// CHECK-NEXT:     </dict> +// CHECK-NEXT:     <dict> +// CHECK-NEXT:      <key>kind</key><string>control</string> +// CHECK-NEXT:      <key>edges</key> +// CHECK-NEXT:       <array> +// CHECK-NEXT:        <dict> +// CHECK-NEXT:         <key>start</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>56</integer> +// CHECK-NEXT:            <key>col</key><integer>3</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>56</integer> +// CHECK-NEXT:            <key>col</key><integer>25</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:         <key>end</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>56</integer> +// CHECK-NEXT:            <key>col</key><integer>3</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>56</integer> +// CHECK-NEXT:            <key>col</key><integer>25</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:        </dict> +// CHECK-NEXT:       </array> +// CHECK-NEXT:     </dict> +// CHECK-NEXT:     <dict> +// CHECK-NEXT:      <key>kind</key><string>event</string> +// CHECK-NEXT:      <key>location</key> +// CHECK-NEXT:      <dict> +// CHECK-NEXT:       <key>line</key><integer>56</integer> +// CHECK-NEXT:       <key>col</key><integer>3</integer> +// CHECK-NEXT:       <key>file</key><integer>0</integer> +// CHECK-NEXT:      </dict> +// CHECK-NEXT:      <key>ranges</key> +// CHECK-NEXT:      <array> +// CHECK-NEXT:        <array> +// CHECK-NEXT:         <dict> +// CHECK-NEXT:          <key>line</key><integer>56</integer> +// CHECK-NEXT:          <key>col</key><integer>3</integer> +// CHECK-NEXT:          <key>file</key><integer>0</integer> +// CHECK-NEXT:         </dict> +// CHECK-NEXT:         <dict> +// CHECK-NEXT:          <key>line</key><integer>56</integer> +// CHECK-NEXT:          <key>col</key><integer>25</integer> +// CHECK-NEXT:          <key>file</key><integer>0</integer> +// CHECK-NEXT:         </dict> +// CHECK-NEXT:        </array> +// CHECK-NEXT:      </array> +// CHECK-NEXT:      <key>depth</key><integer>0</integer> +// CHECK-NEXT:      <key>extended_message</key> +// CHECK-NEXT:      <string>Dereference of null pointer (loaded from variable 'p')</string> +// CHECK-NEXT:      <key>message</key> +// CHECK-NEXT:      <string>Dereference of null pointer (loaded from variable 'p')</string> +// CHECK-NEXT:     </dict> +// CHECK-NEXT:    </array> +// CHECK-NEXT:    <key>description</key><string>Dereference of null pointer (loaded from variable 'p')</string> +// CHECK-NEXT:    <key>category</key><string>Logic error</string> +// CHECK-NEXT:    <key>type</key><string>Dereference of null pointer</string> +// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string> +// CHECK-NEXT:   <key>issue_context</key><string>useMultiNoteMacroWithError</string> +// CHECK-NEXT:   <key>issue_hash</key><string>2</string> +// CHECK-NEXT:   <key>location</key> +// CHECK-NEXT:   <dict> +// CHECK-NEXT:    <key>line</key><integer>56</integer> +// CHECK-NEXT:    <key>col</key><integer>3</integer> +// CHECK-NEXT:    <key>file</key><integer>0</integer> +// CHECK-NEXT:   </dict> +// CHECK-NEXT:   </dict> +// CHECK-NEXT:   <dict> +// CHECK-NEXT:    <key>path</key> +// CHECK-NEXT:    <array> +// CHECK-NEXT:     <dict> +// CHECK-NEXT:      <key>kind</key><string>control</string> +// CHECK-NEXT:      <key>edges</key> +// CHECK-NEXT:       <array> +// CHECK-NEXT:        <dict> +// CHECK-NEXT:         <key>start</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>67</integer> +// CHECK-NEXT:            <key>col</key><integer>3</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>67</integer> +// CHECK-NEXT:            <key>col</key><integer>3</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:         <key>end</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>68</integer> +// CHECK-NEXT:            <key>col</key><integer>3</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>68</integer> +// CHECK-NEXT:            <key>col</key><integer>16</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:        </dict> +// CHECK-NEXT:       </array> +// CHECK-NEXT:     </dict> +// CHECK-NEXT:     <dict> +// CHECK-NEXT:      <key>kind</key><string>event</string> +// CHECK-NEXT:      <key>location</key> +// CHECK-NEXT:      <dict> +// CHECK-NEXT:       <key>line</key><integer>68</integer> +// CHECK-NEXT:       <key>col</key><integer>3</integer> +// CHECK-NEXT:       <key>file</key><integer>0</integer> +// CHECK-NEXT:      </dict> +// CHECK-NEXT:      <key>ranges</key> +// CHECK-NEXT:      <array> +// CHECK-NEXT:        <array> +// CHECK-NEXT:         <dict> +// CHECK-NEXT:          <key>line</key><integer>68</integer> +// CHECK-NEXT:          <key>col</key><integer>3</integer> +// CHECK-NEXT:          <key>file</key><integer>0</integer> +// CHECK-NEXT:         </dict> +// CHECK-NEXT:         <dict> +// CHECK-NEXT:          <key>line</key><integer>68</integer> +// CHECK-NEXT:          <key>col</key><integer>16</integer> +// CHECK-NEXT:          <key>file</key><integer>0</integer> +// CHECK-NEXT:         </dict> +// CHECK-NEXT:        </array> +// CHECK-NEXT:      </array> +// CHECK-NEXT:      <key>depth</key><integer>0</integer> +// CHECK-NEXT:      <key>extended_message</key> +// CHECK-NEXT:      <string>Assuming 'p' is null</string> +// CHECK-NEXT:      <key>message</key> +// CHECK-NEXT:      <string>Assuming 'p' is null</string> +// CHECK-NEXT:     </dict> +// CHECK-NEXT:     <dict> +// CHECK-NEXT:      <key>kind</key><string>event</string> +// CHECK-NEXT:      <key>location</key> +// CHECK-NEXT:      <dict> +// CHECK-NEXT:       <key>line</key><integer>68</integer> +// CHECK-NEXT:       <key>col</key><integer>3</integer> +// CHECK-NEXT:       <key>file</key><integer>0</integer> +// CHECK-NEXT:      </dict> +// CHECK-NEXT:      <key>ranges</key> +// CHECK-NEXT:      <array> +// CHECK-NEXT:        <array> +// CHECK-NEXT:         <dict> +// CHECK-NEXT:          <key>line</key><integer>68</integer> +// CHECK-NEXT:          <key>col</key><integer>3</integer> +// CHECK-NEXT:          <key>file</key><integer>0</integer> +// CHECK-NEXT:         </dict> +// CHECK-NEXT:         <dict> +// CHECK-NEXT:          <key>line</key><integer>68</integer> +// CHECK-NEXT:          <key>col</key><integer>16</integer> +// CHECK-NEXT:          <key>file</key><integer>0</integer> +// CHECK-NEXT:         </dict> +// CHECK-NEXT:        </array> +// CHECK-NEXT:      </array> +// CHECK-NEXT:      <key>depth</key><integer>0</integer> +// CHECK-NEXT:      <key>extended_message</key> +// CHECK-NEXT:      <string>Assuming 'y' is 0</string> +// CHECK-NEXT:      <key>message</key> +// CHECK-NEXT:      <string>Assuming 'y' is 0</string> +// CHECK-NEXT:     </dict> +// CHECK-NEXT:     <dict> +// CHECK-NEXT:      <key>kind</key><string>control</string> +// CHECK-NEXT:      <key>edges</key> +// CHECK-NEXT:       <array> +// CHECK-NEXT:        <dict> +// CHECK-NEXT:         <key>start</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>68</integer> +// CHECK-NEXT:            <key>col</key><integer>3</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>68</integer> +// CHECK-NEXT:            <key>col</key><integer>16</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:         <key>end</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>70</integer> +// CHECK-NEXT:            <key>col</key><integer>3</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>70</integer> +// CHECK-NEXT:            <key>col</key><integer>8</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:        </dict> +// CHECK-NEXT:       </array> +// CHECK-NEXT:     </dict> +// CHECK-NEXT:     <dict> +// CHECK-NEXT:      <key>kind</key><string>control</string> +// CHECK-NEXT:      <key>edges</key> +// CHECK-NEXT:       <array> +// CHECK-NEXT:        <dict> +// CHECK-NEXT:         <key>start</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>70</integer> +// CHECK-NEXT:            <key>col</key><integer>3</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>70</integer> +// CHECK-NEXT:            <key>col</key><integer>8</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:         <key>end</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>70</integer> +// CHECK-NEXT:            <key>col</key><integer>10</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>70</integer> +// CHECK-NEXT:            <key>col</key><integer>10</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:        </dict> +// CHECK-NEXT:       </array> +// CHECK-NEXT:     </dict> +// CHECK-NEXT:     <dict> +// CHECK-NEXT:      <key>kind</key><string>event</string> +// CHECK-NEXT:      <key>location</key> +// CHECK-NEXT:      <dict> +// CHECK-NEXT:       <key>line</key><integer>70</integer> +// CHECK-NEXT:       <key>col</key><integer>10</integer> +// CHECK-NEXT:       <key>file</key><integer>0</integer> +// CHECK-NEXT:      </dict> +// CHECK-NEXT:      <key>ranges</key> +// CHECK-NEXT:      <array> +// CHECK-NEXT:        <array> +// CHECK-NEXT:         <dict> +// CHECK-NEXT:          <key>line</key><integer>70</integer> +// CHECK-NEXT:          <key>col</key><integer>11</integer> +// CHECK-NEXT:          <key>file</key><integer>0</integer> +// CHECK-NEXT:         </dict> +// CHECK-NEXT:         <dict> +// CHECK-NEXT:          <key>line</key><integer>70</integer> +// CHECK-NEXT:          <key>col</key><integer>11</integer> +// CHECK-NEXT:          <key>file</key><integer>0</integer> +// CHECK-NEXT:         </dict> +// CHECK-NEXT:        </array> +// CHECK-NEXT:      </array> +// CHECK-NEXT:      <key>depth</key><integer>0</integer> +// CHECK-NEXT:      <key>extended_message</key> +// CHECK-NEXT:      <string>Dereference of null pointer (loaded from variable 'p')</string> +// CHECK-NEXT:      <key>message</key> +// CHECK-NEXT:      <string>Dereference of null pointer (loaded from variable 'p')</string> +// CHECK-NEXT:     </dict> +// CHECK-NEXT:    </array> +// CHECK-NEXT:    <key>description</key><string>Dereference of null pointer (loaded from variable 'p')</string> +// CHECK-NEXT:    <key>category</key><string>Logic error</string> +// CHECK-NEXT:    <key>type</key><string>Dereference of null pointer</string> +// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string> +// CHECK-NEXT:   <key>issue_context</key><string>useMultiNote</string> +// CHECK-NEXT:   <key>issue_hash</key><string>4</string> +// CHECK-NEXT:   <key>location</key> +// CHECK-NEXT:   <dict> +// CHECK-NEXT:    <key>line</key><integer>70</integer> +// CHECK-NEXT:    <key>col</key><integer>10</integer> +// CHECK-NEXT:    <key>file</key><integer>0</integer> +// CHECK-NEXT:   </dict> +// CHECK-NEXT:   </dict> +// CHECK-NEXT:   <dict> +// CHECK-NEXT:    <key>path</key> +// CHECK-NEXT:    <array> +// CHECK-NEXT:     <dict> +// CHECK-NEXT:      <key>kind</key><string>event</string> +// CHECK-NEXT:      <key>location</key> +// CHECK-NEXT:      <dict> +// CHECK-NEXT:       <key>line</key><integer>82</integer> +// CHECK-NEXT:       <key>col</key><integer>3</integer> +// CHECK-NEXT:       <key>file</key><integer>0</integer> +// CHECK-NEXT:      </dict> +// CHECK-NEXT:      <key>ranges</key> +// CHECK-NEXT:      <array> +// CHECK-NEXT:        <array> +// CHECK-NEXT:         <dict> +// CHECK-NEXT:          <key>line</key><integer>82</integer> +// CHECK-NEXT:          <key>col</key><integer>3</integer> +// CHECK-NEXT:          <key>file</key><integer>0</integer> +// CHECK-NEXT:         </dict> +// CHECK-NEXT:         <dict> +// CHECK-NEXT:          <key>line</key><integer>82</integer> +// CHECK-NEXT:          <key>col</key><integer>9</integer> +// CHECK-NEXT:          <key>file</key><integer>0</integer> +// CHECK-NEXT:         </dict> +// CHECK-NEXT:        </array> +// CHECK-NEXT:      </array> +// CHECK-NEXT:      <key>depth</key><integer>0</integer> +// CHECK-NEXT:      <key>extended_message</key> +// CHECK-NEXT:      <string>Passing null pointer value via 1st parameter 'a'</string> +// CHECK-NEXT:      <key>message</key> +// CHECK-NEXT:      <string>Passing null pointer value via 1st parameter 'a'</string> +// CHECK-NEXT:     </dict> +// CHECK-NEXT:     <dict> +// CHECK-NEXT:      <key>kind</key><string>event</string> +// CHECK-NEXT:      <key>location</key> +// CHECK-NEXT:      <dict> +// CHECK-NEXT:       <key>line</key><integer>82</integer> +// CHECK-NEXT:       <key>col</key><integer>3</integer> +// CHECK-NEXT:       <key>file</key><integer>0</integer> +// CHECK-NEXT:      </dict> +// CHECK-NEXT:      <key>ranges</key> +// CHECK-NEXT:      <array> +// CHECK-NEXT:        <array> +// CHECK-NEXT:         <dict> +// CHECK-NEXT:          <key>line</key><integer>82</integer> +// CHECK-NEXT:          <key>col</key><integer>3</integer> +// CHECK-NEXT:          <key>file</key><integer>0</integer> +// CHECK-NEXT:         </dict> +// CHECK-NEXT:         <dict> +// CHECK-NEXT:          <key>line</key><integer>82</integer> +// CHECK-NEXT:          <key>col</key><integer>9</integer> +// CHECK-NEXT:          <key>file</key><integer>0</integer> +// CHECK-NEXT:         </dict> +// CHECK-NEXT:        </array> +// CHECK-NEXT:      </array> +// CHECK-NEXT:      <key>depth</key><integer>0</integer> +// CHECK-NEXT:      <key>extended_message</key> +// CHECK-NEXT:      <string>Calling 'null_deref'</string> +// CHECK-NEXT:      <key>message</key> +// CHECK-NEXT:      <string>Calling 'null_deref'</string> +// CHECK-NEXT:     </dict> +// CHECK-NEXT:     <dict> +// CHECK-NEXT:      <key>kind</key><string>event</string> +// CHECK-NEXT:      <key>location</key> +// CHECK-NEXT:      <dict> +// CHECK-NEXT:       <key>line</key><integer>75</integer> +// CHECK-NEXT:       <key>col</key><integer>1</integer> +// CHECK-NEXT:       <key>file</key><integer>0</integer> +// CHECK-NEXT:      </dict> +// CHECK-NEXT:      <key>depth</key><integer>1</integer> +// CHECK-NEXT:      <key>extended_message</key> +// CHECK-NEXT:      <string>Entered call from 'test1'</string> +// CHECK-NEXT:      <key>message</key> +// CHECK-NEXT:      <string>Entered call from 'test1'</string> +// CHECK-NEXT:     </dict> +// CHECK-NEXT:     <dict> +// CHECK-NEXT:      <key>kind</key><string>control</string> +// CHECK-NEXT:      <key>edges</key> +// CHECK-NEXT:       <array> +// CHECK-NEXT:        <dict> +// CHECK-NEXT:         <key>start</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>75</integer> +// CHECK-NEXT:            <key>col</key><integer>1</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>75</integer> +// CHECK-NEXT:            <key>col</key><integer>4</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:         <key>end</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>76</integer> +// CHECK-NEXT:            <key>col</key><integer>3</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>76</integer> +// CHECK-NEXT:            <key>col</key><integer>4</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:        </dict> +// CHECK-NEXT:       </array> +// CHECK-NEXT:     </dict> +// CHECK-NEXT:     <dict> +// CHECK-NEXT:      <key>kind</key><string>control</string> +// CHECK-NEXT:      <key>edges</key> +// CHECK-NEXT:       <array> +// CHECK-NEXT:        <dict> +// CHECK-NEXT:         <key>start</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>76</integer> +// CHECK-NEXT:            <key>col</key><integer>3</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>76</integer> +// CHECK-NEXT:            <key>col</key><integer>4</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:         <key>end</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>78</integer> +// CHECK-NEXT:            <key>col</key><integer>3</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>78</integer> +// CHECK-NEXT:            <key>col</key><integer>3</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:        </dict> +// CHECK-NEXT:       </array> +// CHECK-NEXT:     </dict> +// CHECK-NEXT:     <dict> +// CHECK-NEXT:      <key>kind</key><string>control</string> +// CHECK-NEXT:      <key>edges</key> +// CHECK-NEXT:       <array> +// CHECK-NEXT:        <dict> +// CHECK-NEXT:         <key>start</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>78</integer> +// CHECK-NEXT:            <key>col</key><integer>3</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>78</integer> +// CHECK-NEXT:            <key>col</key><integer>3</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:         <key>end</key> +// CHECK-NEXT:          <array> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>78</integer> +// CHECK-NEXT:            <key>col</key><integer>6</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:           <dict> +// CHECK-NEXT:            <key>line</key><integer>78</integer> +// CHECK-NEXT:            <key>col</key><integer>6</integer> +// CHECK-NEXT:            <key>file</key><integer>0</integer> +// CHECK-NEXT:           </dict> +// CHECK-NEXT:          </array> +// CHECK-NEXT:        </dict> +// CHECK-NEXT:       </array> +// CHECK-NEXT:     </dict> +// CHECK-NEXT:     <dict> +// CHECK-NEXT:      <key>kind</key><string>event</string> +// CHECK-NEXT:      <key>location</key> +// CHECK-NEXT:      <dict> +// CHECK-NEXT:       <key>line</key><integer>78</integer> +// CHECK-NEXT:       <key>col</key><integer>6</integer> +// CHECK-NEXT:       <key>file</key><integer>0</integer> +// CHECK-NEXT:      </dict> +// CHECK-NEXT:      <key>ranges</key> +// CHECK-NEXT:      <array> +// CHECK-NEXT:        <array> +// CHECK-NEXT:         <dict> +// CHECK-NEXT:          <key>line</key><integer>78</integer> +// CHECK-NEXT:          <key>col</key><integer>4</integer> +// CHECK-NEXT:          <key>file</key><integer>0</integer> +// CHECK-NEXT:         </dict> +// CHECK-NEXT:         <dict> +// CHECK-NEXT:          <key>line</key><integer>78</integer> +// CHECK-NEXT:          <key>col</key><integer>4</integer> +// CHECK-NEXT:          <key>file</key><integer>0</integer> +// CHECK-NEXT:         </dict> +// CHECK-NEXT:        </array> +// CHECK-NEXT:      </array> +// CHECK-NEXT:      <key>depth</key><integer>1</integer> +// CHECK-NEXT:      <key>extended_message</key> +// CHECK-NEXT:      <string>Dereference of null pointer (loaded from variable 'a')</string> +// CHECK-NEXT:      <key>message</key> +// CHECK-NEXT:      <string>Dereference of null pointer (loaded from variable 'a')</string> +// CHECK-NEXT:     </dict> +// CHECK-NEXT:    </array> +// CHECK-NEXT:    <key>description</key><string>Dereference of null pointer (loaded from variable 'a')</string> +// CHECK-NEXT:    <key>category</key><string>Logic error</string> +// CHECK-NEXT:    <key>type</key><string>Dereference of null pointer</string> +// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string> +// CHECK-NEXT:   <key>issue_context</key><string>null_deref</string> +// CHECK-NEXT:   <key>issue_hash</key><string>3</string> +// CHECK-NEXT:   <key>location</key> +// CHECK-NEXT:   <dict> +// CHECK-NEXT:    <key>line</key><integer>78</integer> +// CHECK-NEXT:    <key>col</key><integer>6</integer> +// CHECK-NEXT:    <key>file</key><integer>0</integer> +// CHECK-NEXT:   </dict> +// CHECK-NEXT:   </dict> +// CHECK-NEXT:  </array> | 
