// RUN: %clang_analyze_cc1 -analyzer-checker=debug.ExprInspection -analyzer-output=plist-multi-file %s -o %t.plist // RUN: FileCheck --input-file=%t.plist %s #include "Inputs/include/plist-diagnostics-include-check-macro.h" void foo() { PlistCheckMacro() #define PLIST_DEF_MACRO .run(); #include "Inputs/include/plist-diagnostics-include-check-macro.def" } // CHECK: diagnostics // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: path // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: // CHECK-NEXT: line7 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: ranges // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: line7 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: line1 // CHECK-NEXT: col15 // CHECK-NEXT: file2 // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: depth0 // CHECK-NEXT: extended_message // CHECK-NEXT: Calling 'PlistCheckMacro::run' // CHECK-NEXT: message // CHECK-NEXT: Calling 'PlistCheckMacro::run' // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: // CHECK-NEXT: line6 // CHECK-NEXT: col3 // CHECK-NEXT: file1 // CHECK-NEXT: // CHECK-NEXT: depth1 // CHECK-NEXT: extended_message // CHECK-NEXT: Entered call from 'foo' // CHECK-NEXT: message // CHECK-NEXT: Entered call from 'foo' // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: kindcontrol // CHECK-NEXT: edges // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: start // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: line6 // CHECK-NEXT: col3 // CHECK-NEXT: file1 // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: line6 // CHECK-NEXT: col6 // CHECK-NEXT: file1 // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: end // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: line7 // CHECK-NEXT: col5 // CHECK-NEXT: file1 // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: line7 // CHECK-NEXT: col32 // CHECK-NEXT: file1 // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: // CHECK-NEXT: line7 // CHECK-NEXT: col5 // CHECK-NEXT: file1 // CHECK-NEXT: // CHECK-NEXT: ranges // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: line7 // CHECK-NEXT: col5 // CHECK-NEXT: file1 // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: line7 // CHECK-NEXT: col34 // CHECK-NEXT: file1 // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: depth1 // CHECK-NEXT: extended_message // CHECK-NEXT: REACHABLE // CHECK-NEXT: message // CHECK-NEXT: REACHABLE // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: descriptionREACHABLE // CHECK-NEXT: categorydebug // CHECK-NEXT: typeChecking analyzer assumptions // CHECK-NEXT: check_namedebug.ExprInspection // CHECK-NEXT: // CHECK-NEXT: issue_hash_content_of_line_in_context93b4eab05b21c892c8e31723e5af3f59 // CHECK-NEXT: issue_context_kindC++ method // CHECK-NEXT: issue_contextrun // CHECK-NEXT: issue_hash_function_offset1 // CHECK-NEXT: location // CHECK-NEXT: // CHECK-NEXT: line7 // CHECK-NEXT: col5 // CHECK-NEXT: file1 // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: