// RUN: %clang_cc1 -analyze -analyzer-checker=core -analyzer-output=plist -o %t %s // RUN: FileCheck --input-file %t %s #include "undef-value-callee.h" // This code used to cause a crash since we were not adding fileID of the header to the plist diagnostic. // Note, in the future, we do not even need to step into this callee since it does not influence the result. int test_calling_unimportant_callee(int argc, char *argv[]) { int x; callee(); return x; // expected-warning {{Undefined or garbage value returned to caller}} } // CHECK: // CHECK: // CHECK: // CHECK: files // CHECK: // CHECK: // CHECK: diagnostics // CHECK: // CHECK: // CHECK: path // CHECK: // CHECK: // CHECK: kindevent // CHECK: location // CHECK: // CHECK: line9 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: ranges // CHECK: // CHECK: // CHECK: // CHECK: line9 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: line9 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: depth0 // CHECK: extended_message // CHECK: Variable 'x' declared without an initial value // CHECK: message // CHECK: Variable 'x' declared without an initial value // CHECK: // CHECK: // CHECK: kindcontrol // CHECK: edges // CHECK: // CHECK: // CHECK: start // CHECK: // CHECK: // CHECK: line9 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: line9 // CHECK: col5 // CHECK: file0 // CHECK: // CHECK: // CHECK: end // CHECK: // CHECK: // CHECK: line10 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: line10 // CHECK: col8 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: // 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 'callee' // CHECK: message // CHECK: Calling 'callee' // CHECK: // CHECK: // CHECK: kindevent // CHECK: location // CHECK: // CHECK: line2 // CHECK: col1 // CHECK: file1 // CHECK: // CHECK: depth1 // CHECK: extended_message // CHECK: Entered call from 'test_calling_unimportant_callee' // CHECK: message // CHECK: Entered call from 'test_calling_unimportant_callee' // 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 'callee' // CHECK: message // CHECK: Returning from 'callee' // CHECK: // CHECK: // CHECK: kindcontrol // CHECK: edges // CHECK: // CHECK: // CHECK: start // CHECK: // CHECK: // CHECK: line10 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: line10 // CHECK: col8 // CHECK: file0 // CHECK: // CHECK: // CHECK: end // CHECK: // CHECK: // CHECK: line11 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: line11 // CHECK: col8 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: kindevent // CHECK: location // CHECK: // CHECK: line11 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: ranges // CHECK: // CHECK: // CHECK: // CHECK: line11 // CHECK: col10 // CHECK: file0 // CHECK: // CHECK: // CHECK: line11 // CHECK: col10 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: depth0 // CHECK: extended_message // CHECK: Undefined or garbage value returned to caller // CHECK: message // CHECK: Undefined or garbage value returned to caller // CHECK: // CHECK: // CHECK: descriptionUndefined or garbage value returned to caller // CHECK: categoryLogic error // CHECK: typeGarbage return value // CHECK: issue_context_kindfunction // CHECK: issue_contexttest_calling_unimportant_callee // CHECK: location // CHECK: // CHECK: line11 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: // CHECK: