// RUN: %clang_cc1 -analyze -analyzer-checker=core -analyzer-ipa=inlining -analyzer-output=text -verify %s // RUN: %clang_cc1 -analyze -analyzer-checker=core -analyzer-ipa=inlining -analyzer-output=plist-multi-file %s -o - | FileCheck %s void zero(int **p) { *p = 0; // expected-note@-1 {{Null pointer value stored to 'a'}} } void testZero(int *a) { zero(&a); // expected-note@-1 {{Calling 'zero'}} // expected-note@-2 {{Returning from 'zero'}} *a = 1; // expected-warning{{Dereference of null pointer}} // expected-note@-1 {{Dereference of null pointer (loaded from variable 'a')}} } void check(int *p) { if (p) { // expected-note@-1 + {{Assuming 'p' is null}} // expected-note@-2 + {{Assuming pointer value is null}} // expected-note@-3 + {{Taking false branch}} return; } return; } void testCheck(int *a) { check(a); // expected-note@-1 {{Calling 'check'}} // expected-note@-2 {{Returning from 'check'}} *a = 1; // expected-warning{{Dereference of null pointer}} // expected-note@-1 {{Dereference of null pointer (loaded from variable 'a')}} } int *getPointer(); void testInitCheck() { int *a = getPointer(); // expected-note@-1 {{Variable 'a' initialized here}} check(a); // expected-note@-1 {{Calling 'check'}} // expected-note@-2 {{Returning from 'check'}} *a = 1; // expected-warning{{Dereference of null pointer}} // expected-note@-1 {{Dereference of null pointer (loaded from variable 'a')}} } void testStoreCheck(int *a) { a = getPointer(); // expected-note@-1 {{Value assigned to 'a'}} check(a); // expected-note@-1 {{Calling 'check'}} // expected-note@-2 {{Returning from 'check'}} *a = 1; // expected-warning{{Dereference of null pointer}} // expected-note@-1 {{Dereference of null pointer (loaded from variable 'a')}} } // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: files // CHECK: // CHECK: {{.*}}path-notes.c // CHECK: // CHECK: diagnostics // CHECK: // CHECK: // CHECK: path // CHECK: // CHECK: // CHECK: kindevent // CHECK: location // CHECK: // CHECK: line10 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: ranges // CHECK: // CHECK: // CHECK: // CHECK: line10 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: line10 // CHECK: col10 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: depth0 // CHECK: extended_message // CHECK: Calling 'zero' // CHECK: message // CHECK: Calling 'zero' // CHECK: // CHECK: // CHECK: kindevent // CHECK: location // CHECK: // CHECK: line4 // CHECK: col1 // CHECK: file0 // CHECK: // CHECK: depth1 // CHECK: extended_message // CHECK: Entered call from 'testZero' // CHECK: message // CHECK: Entered call from 'testZero' // CHECK: // CHECK: // CHECK: kindcontrol // CHECK: edges // CHECK: // CHECK: // CHECK: start // CHECK: // CHECK: // CHECK: line4 // CHECK: col1 // CHECK: file0 // CHECK: // CHECK: // CHECK: line4 // CHECK: col4 // CHECK: file0 // CHECK: // CHECK: // CHECK: end // CHECK: // CHECK: // CHECK: line5 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: line5 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: kindevent // CHECK: location // CHECK: // CHECK: line5 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: ranges // CHECK: // CHECK: // CHECK: // CHECK: line5 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: line5 // CHECK: col8 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: depth1 // CHECK: extended_message // CHECK: Null pointer value stored to 'a' // CHECK: message // CHECK: Null pointer value stored to 'a' // CHECK: // CHECK: // CHECK: kindevent // CHECK: location // CHECK: // CHECK: line10 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: ranges // CHECK: // CHECK: // CHECK: // CHECK: line10 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: line10 // CHECK: col10 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: depth1 // CHECK: extended_message // CHECK: Returning from 'zero' // CHECK: message // CHECK: Returning from 'zero' // CHECK: // CHECK: // CHECK: kindcontrol // CHECK: edges // CHECK: // CHECK: // CHECK: start // CHECK: // CHECK: // CHECK: line10 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: line10 // CHECK: col6 // CHECK: file0 // CHECK: // CHECK: // CHECK: end // CHECK: // CHECK: // CHECK: line13 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: line13 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: kindevent // CHECK: location // CHECK: // CHECK: line13 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: ranges // CHECK: // CHECK: // CHECK: // CHECK: line13 // CHECK: col4 // CHECK: file0 // CHECK: // CHECK: // CHECK: line13 // CHECK: col4 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: depth0 // CHECK: extended_message // CHECK: Dereference of null pointer (loaded from variable 'a') // CHECK: message // CHECK: Dereference of null pointer (loaded from variable 'a') // CHECK: // CHECK: // CHECK: descriptionDereference of null pointer (loaded from variable 'a') // CHECK: categoryLogic error // CHECK: typeDereference of null pointer // CHECK: issue_context_kindfunction // CHECK: issue_contexttestZero // CHECK: issue_hash4 // CHECK: location // CHECK: // CHECK: line13 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: path // CHECK: // CHECK: // CHECK: kindevent // CHECK: location // CHECK: // CHECK: line29 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: ranges // CHECK: // CHECK: // CHECK: // CHECK: line29 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: line29 // CHECK: col10 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: depth0 // CHECK: extended_message // CHECK: Calling 'check' // CHECK: message // CHECK: Calling 'check' // CHECK: // CHECK: // CHECK: kindevent // CHECK: location // CHECK: // CHECK: line18 // CHECK: col1 // CHECK: file0 // CHECK: // CHECK: depth1 // CHECK: extended_message // CHECK: Entered call from 'testCheck' // CHECK: message // CHECK: Entered call from 'testCheck' // CHECK: // CHECK: // CHECK: kindcontrol // CHECK: edges // CHECK: // CHECK: // CHECK: start // CHECK: // CHECK: // CHECK: line18 // CHECK: col1 // CHECK: file0 // CHECK: // CHECK: // CHECK: line18 // CHECK: col4 // CHECK: file0 // CHECK: // CHECK: // CHECK: end // CHECK: // CHECK: // CHECK: line19 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: line19 // CHECK: col4 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: kindcontrol // CHECK: edges // CHECK: // CHECK: // CHECK: start // CHECK: // CHECK: // CHECK: line19 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: line19 // CHECK: col4 // CHECK: file0 // CHECK: // CHECK: // CHECK: end // CHECK: // CHECK: // CHECK: line19 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: // CHECK: line19 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: kindevent // CHECK: location // CHECK: // CHECK: line19 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: ranges // CHECK: // CHECK: // CHECK: // CHECK: line19 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: // CHECK: line19 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: depth1 // CHECK: extended_message // CHECK: Assuming 'p' is null // CHECK: message // CHECK: Assuming 'p' is null // CHECK: // CHECK: // CHECK: kindevent // CHECK: location // CHECK: // CHECK: line19 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: ranges // CHECK: // CHECK: // CHECK: // CHECK: line19 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: // CHECK: line19 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: depth1 // CHECK: extended_message // CHECK: Assuming pointer value is null // CHECK: message // CHECK: Assuming pointer value is null // CHECK: // CHECK: // CHECK: kindcontrol // CHECK: edges // CHECK: // CHECK: // CHECK: start // CHECK: // CHECK: // CHECK: line19 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: // CHECK: line19 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: // CHECK: end // CHECK: // CHECK: // CHECK: line25 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: line25 // CHECK: col8 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: kindevent // CHECK: location // CHECK: // CHECK: line29 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: ranges // CHECK: // CHECK: // CHECK: // CHECK: line29 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: line29 // CHECK: col10 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: depth1 // CHECK: extended_message // CHECK: Returning from 'check' // CHECK: message // CHECK: Returning from 'check' // CHECK: // CHECK: // CHECK: kindcontrol // CHECK: edges // CHECK: // CHECK: // CHECK: start // CHECK: // CHECK: // CHECK: line29 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: line29 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: // CHECK: end // CHECK: // CHECK: // CHECK: line32 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: line32 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: kindevent // CHECK: location // CHECK: // CHECK: line32 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: ranges // CHECK: // CHECK: // CHECK: // CHECK: line32 // CHECK: col4 // CHECK: file0 // CHECK: // CHECK: // CHECK: line32 // CHECK: col4 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: depth0 // CHECK: extended_message // CHECK: Dereference of null pointer (loaded from variable 'a') // CHECK: message // CHECK: Dereference of null pointer (loaded from variable 'a') // CHECK: // CHECK: // CHECK: descriptionDereference of null pointer (loaded from variable 'a') // CHECK: categoryLogic error // CHECK: typeDereference of null pointer // CHECK: issue_context_kindfunction // CHECK: issue_contexttestCheck // CHECK: issue_hash4 // CHECK: location // CHECK: // CHECK: line32 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: path // CHECK: // CHECK: // CHECK: kindevent // CHECK: location // CHECK: // CHECK: line40 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: ranges // CHECK: // CHECK: // CHECK: // CHECK: line40 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: line40 // CHECK: col8 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: depth0 // CHECK: extended_message // CHECK: Variable 'a' initialized here // CHECK: message // CHECK: Variable 'a' initialized here // CHECK: // CHECK: // CHECK: kindcontrol // CHECK: edges // CHECK: // CHECK: // CHECK: start // CHECK: // CHECK: // CHECK: line40 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: line40 // CHECK: col5 // CHECK: file0 // CHECK: // CHECK: // CHECK: end // CHECK: // CHECK: // CHECK: line42 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: line42 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: kindevent // CHECK: location // CHECK: // CHECK: line42 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: ranges // CHECK: // CHECK: // CHECK: // CHECK: line42 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: line42 // CHECK: col10 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: depth0 // CHECK: extended_message // CHECK: Calling 'check' // CHECK: message // CHECK: Calling 'check' // CHECK: // CHECK: // CHECK: kindevent // CHECK: location // CHECK: // CHECK: line18 // CHECK: col1 // CHECK: file0 // CHECK: // CHECK: depth1 // CHECK: extended_message // CHECK: Entered call from 'testInitCheck' // CHECK: message // CHECK: Entered call from 'testInitCheck' // CHECK: // CHECK: // CHECK: kindcontrol // CHECK: edges // CHECK: // CHECK: // CHECK: start // CHECK: // CHECK: // CHECK: line18 // CHECK: col1 // CHECK: file0 // CHECK: // CHECK: // CHECK: line18 // CHECK: col4 // CHECK: file0 // CHECK: // CHECK: // CHECK: end // CHECK: // CHECK: // CHECK: line19 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: line19 // CHECK: col4 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: kindcontrol // CHECK: edges // CHECK: // CHECK: // CHECK: start // CHECK: // CHECK: // CHECK: line19 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: line19 // CHECK: col4 // CHECK: file0 // CHECK: // CHECK: // CHECK: end // CHECK: // CHECK: // CHECK: line19 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: // CHECK: line19 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: kindevent // CHECK: location // CHECK: // CHECK: line19 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: ranges // CHECK: // CHECK: // CHECK: // CHECK: line19 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: // CHECK: line19 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: depth1 // CHECK: extended_message // CHECK: Assuming 'p' is null // CHECK: message // CHECK: Assuming 'p' is null // CHECK: // CHECK: // CHECK: kindcontrol // CHECK: edges // CHECK: // CHECK: // CHECK: start // CHECK: // CHECK: // CHECK: line19 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: // CHECK: line19 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: // CHECK: end // CHECK: // CHECK: // CHECK: line25 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: line25 // CHECK: col8 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: kindevent // CHECK: location // CHECK: // CHECK: line42 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: ranges // CHECK: // CHECK: // CHECK: // CHECK: line42 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: line42 // CHECK: col10 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: depth1 // CHECK: extended_message // CHECK: Returning from 'check' // CHECK: message // CHECK: Returning from 'check' // CHECK: // CHECK: // CHECK: kindcontrol // CHECK: edges // CHECK: // CHECK: // CHECK: start // CHECK: // CHECK: // CHECK: line42 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: line42 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: // CHECK: end // CHECK: // CHECK: // CHECK: line45 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: line45 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: kindevent // CHECK: location // CHECK: // CHECK: line45 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: ranges // CHECK: // CHECK: // CHECK: // CHECK: line45 // CHECK: col4 // CHECK: file0 // CHECK: // CHECK: // CHECK: line45 // CHECK: col4 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: depth0 // CHECK: extended_message // CHECK: Dereference of null pointer (loaded from variable 'a') // CHECK: message // CHECK: Dereference of null pointer (loaded from variable 'a') // CHECK: // CHECK: // CHECK: descriptionDereference of null pointer (loaded from variable 'a') // CHECK: categoryLogic error // CHECK: typeDereference of null pointer // CHECK: issue_context_kindfunction // CHECK: issue_contexttestInitCheck // CHECK: issue_hash6 // CHECK: location // CHECK: // CHECK: line45 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: path // CHECK: // CHECK: // CHECK: kindevent // CHECK: location // CHECK: // CHECK: line50 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: ranges // CHECK: // CHECK: // CHECK: // CHECK: line50 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: line50 // CHECK: col18 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: depth0 // CHECK: extended_message // CHECK: Value assigned to 'a' // CHECK: message // CHECK: Value assigned to 'a' // CHECK: // CHECK: // CHECK: kindcontrol // CHECK: edges // CHECK: // CHECK: // CHECK: start // CHECK: // CHECK: // CHECK: line50 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: line50 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: end // CHECK: // CHECK: // CHECK: line52 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: line52 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: kindevent // CHECK: location // CHECK: // CHECK: line52 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: ranges // CHECK: // CHECK: // CHECK: // CHECK: line52 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: line52 // CHECK: col10 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: depth0 // CHECK: extended_message // CHECK: Calling 'check' // CHECK: message // CHECK: Calling 'check' // CHECK: // CHECK: // CHECK: kindevent // CHECK: location // CHECK: // CHECK: line18 // CHECK: col1 // CHECK: file0 // CHECK: // CHECK: depth1 // CHECK: extended_message // CHECK: Entered call from 'testStoreCheck' // CHECK: message // CHECK: Entered call from 'testStoreCheck' // CHECK: // CHECK: // CHECK: kindcontrol // CHECK: edges // CHECK: // CHECK: // CHECK: start // CHECK: // CHECK: // CHECK: line18 // CHECK: col1 // CHECK: file0 // CHECK: // CHECK: // CHECK: line18 // CHECK: col4 // CHECK: file0 // CHECK: // CHECK: // CHECK: end // CHECK: // CHECK: // CHECK: line19 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: line19 // CHECK: col4 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: kindcontrol // CHECK: edges // CHECK: // CHECK: // CHECK: start // CHECK: // CHECK: // CHECK: line19 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: line19 // CHECK: col4 // CHECK: file0 // CHECK: // CHECK: // CHECK: end // CHECK: // CHECK: // CHECK: line19 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: // CHECK: line19 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: kindevent // CHECK: location // CHECK: // CHECK: line19 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: ranges // CHECK: // CHECK: // CHECK: // CHECK: line19 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: // CHECK: line19 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: depth1 // CHECK: extended_message // CHECK: Assuming 'p' is null // CHECK: message // CHECK: Assuming 'p' is null // CHECK: // CHECK: // CHECK: kindcontrol // CHECK: edges // CHECK: // CHECK: // CHECK: start // CHECK: // CHECK: // CHECK: line19 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: // CHECK: line19 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: // CHECK: end // CHECK: // CHECK: // CHECK: line25 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: line25 // CHECK: col8 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: kindevent // CHECK: location // CHECK: // CHECK: line52 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: ranges // CHECK: // CHECK: // CHECK: // CHECK: line52 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: line52 // CHECK: col10 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: depth1 // CHECK: extended_message // CHECK: Returning from 'check' // CHECK: message // CHECK: Returning from 'check' // CHECK: // CHECK: // CHECK: kindcontrol // CHECK: edges // CHECK: // CHECK: // CHECK: start // CHECK: // CHECK: // CHECK: line52 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: line52 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: // CHECK: end // CHECK: // CHECK: // CHECK: line55 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: line55 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: kindevent // CHECK: location // CHECK: // CHECK: line55 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: ranges // CHECK: // CHECK: // CHECK: // CHECK: line55 // CHECK: col4 // CHECK: file0 // CHECK: // CHECK: // CHECK: line55 // CHECK: col4 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: depth0 // CHECK: extended_message // CHECK: Dereference of null pointer (loaded from variable 'a') // CHECK: message // CHECK: Dereference of null pointer (loaded from variable 'a') // CHECK: // CHECK: // CHECK: descriptionDereference of null pointer (loaded from variable 'a') // CHECK: categoryLogic error // CHECK: typeDereference of null pointer // CHECK: issue_context_kindfunction // CHECK: issue_contexttestStoreCheck // CHECK: issue_hash6 // CHECK: location // CHECK: // CHECK: line55 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: