From a3e3343e51ad6da159f0df1120a19a8478601d0c Mon Sep 17 00:00:00 2001 From: Jordan Rose Date: Mon, 6 Aug 2012 21:28:14 +0000 Subject: [analyzer] Add plist output checks for all four "path notes" tests. No functionality change, but from now on, any new path notes should be tested both with plain-text output (for ease of human auditing) and with plist output (to ensure control flow and events are being correctly represented in Xcode). llvm-svn: 161351 --- clang/test/Analysis/method-call-path-notes.cpp | 628 +++++++++++++++++++++++++ 1 file changed, 628 insertions(+) (limited to 'clang/test/Analysis/method-call-path-notes.cpp') diff --git a/clang/test/Analysis/method-call-path-notes.cpp b/clang/test/Analysis/method-call-path-notes.cpp index 6298ca043fb..fbf0cae7d8a 100644 --- a/clang/test/Analysis/method-call-path-notes.cpp +++ b/clang/test/Analysis/method-call-path-notes.cpp @@ -1,4 +1,5 @@ // 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 // Test warning about null or uninitialized pointer values used as instance member // calls. @@ -34,3 +35,630 @@ void test_ic_member_ptr() { IC_Ptr bar = &TestInstanceCall::foo; (p->*bar)(); // expected-warning {{Called C++ object pointer is null}} expected-note{{Called C++ object pointer is null}} } + +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: files +// CHECK: +// CHECK: {{.*}}method-call-path-notes.cpp +// CHECK: +// CHECK: diagnostics +// CHECK: +// CHECK: +// CHECK: path +// CHECK: +// CHECK: +// CHECK: kindevent +// CHECK: location +// CHECK: +// CHECK: line12 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: ranges +// CHECK: +// CHECK: +// CHECK: +// CHECK: line12 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line12 +// CHECK: col21 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: depth0 +// CHECK: extended_message +// CHECK: Variable 'p' declared without an initial value +// CHECK: message +// CHECK: Variable 'p' declared without an initial value +// CHECK: +// CHECK: +// CHECK: kindcontrol +// CHECK: edges +// CHECK: +// CHECK: +// CHECK: start +// CHECK: +// CHECK: +// CHECK: line12 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line12 +// CHECK: col18 +// 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: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line13 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: depth0 +// CHECK: extended_message +// CHECK: Called C++ object pointer is uninitialized +// CHECK: message +// CHECK: Called C++ object pointer is uninitialized +// CHECK: +// CHECK: +// CHECK: descriptionCalled C++ object pointer is uninitialized +// CHECK: categoryLogic error +// CHECK: typeCalled C++ object pointer is uninitialized +// CHECK: issue_context_kindfunction +// CHECK: issue_contexttest_ic +// CHECK: issue_hash2 +// CHECK: location +// CHECK: +// CHECK: line13 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: path +// CHECK: +// CHECK: +// CHECK: kindevent +// CHECK: location +// CHECK: +// CHECK: line17 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: ranges +// CHECK: +// CHECK: +// CHECK: +// CHECK: line17 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line17 +// CHECK: col21 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: depth0 +// CHECK: extended_message +// CHECK: Variable 'p' initialized to a null pointer value +// CHECK: message +// CHECK: Variable 'p' initialized to a null pointer value +// CHECK: +// CHECK: +// CHECK: kindcontrol +// CHECK: edges +// CHECK: +// CHECK: +// CHECK: start +// CHECK: +// CHECK: +// CHECK: line17 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line17 +// CHECK: col18 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: end +// CHECK: +// CHECK: +// CHECK: line18 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line18 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: kindevent +// CHECK: location +// CHECK: +// CHECK: line18 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: ranges +// CHECK: +// CHECK: +// CHECK: +// CHECK: line18 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line18 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: depth0 +// CHECK: extended_message +// CHECK: Called C++ object pointer is null +// CHECK: message +// CHECK: Called C++ object pointer is null +// CHECK: +// CHECK: +// CHECK: descriptionCalled C++ object pointer is null +// CHECK: categoryLogic error +// CHECK: typeCalled C++ object pointer is null +// CHECK: issue_context_kindfunction +// CHECK: issue_contexttest_ic_null +// CHECK: issue_hash2 +// CHECK: location +// CHECK: +// CHECK: line18 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: path +// CHECK: +// CHECK: +// CHECK: kindcontrol +// CHECK: edges +// CHECK: +// CHECK: +// CHECK: start +// CHECK: +// CHECK: +// CHECK: line22 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line22 +// CHECK: col18 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: end +// CHECK: +// CHECK: +// CHECK: line23 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line23 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: kindevent +// CHECK: location +// CHECK: +// CHECK: line23 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: ranges +// CHECK: +// CHECK: +// CHECK: +// CHECK: line23 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line23 +// CHECK: col7 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: depth0 +// CHECK: extended_message +// CHECK: Null pointer value stored to 'p' +// CHECK: message +// CHECK: Null pointer value stored to 'p' +// CHECK: +// CHECK: +// CHECK: kindcontrol +// CHECK: edges +// CHECK: +// CHECK: +// CHECK: start +// CHECK: +// CHECK: +// CHECK: line23 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line23 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: end +// CHECK: +// CHECK: +// CHECK: line24 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line24 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: kindevent +// CHECK: location +// CHECK: +// CHECK: line24 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: ranges +// CHECK: +// CHECK: +// CHECK: +// CHECK: line24 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line24 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: depth0 +// CHECK: extended_message +// CHECK: Called C++ object pointer is null +// CHECK: message +// CHECK: Called C++ object pointer is null +// CHECK: +// CHECK: +// CHECK: descriptionCalled C++ object pointer is null +// CHECK: categoryLogic error +// CHECK: typeCalled C++ object pointer is null +// CHECK: issue_context_kindfunction +// CHECK: issue_contexttest_ic_set_to_null +// CHECK: issue_hash3 +// CHECK: location +// CHECK: +// CHECK: line24 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: path +// CHECK: +// CHECK: +// CHECK: kindcontrol +// CHECK: edges +// CHECK: +// CHECK: +// CHECK: start +// CHECK: +// CHECK: +// CHECK: line28 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line28 +// CHECK: col4 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: end +// CHECK: +// CHECK: +// CHECK: line28 +// CHECK: col7 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line28 +// CHECK: col7 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: kindevent +// CHECK: location +// CHECK: +// CHECK: line28 +// CHECK: col7 +// CHECK: file0 +// CHECK: +// CHECK: ranges +// CHECK: +// CHECK: +// CHECK: +// CHECK: line28 +// CHECK: col7 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line28 +// CHECK: col8 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: depth0 +// 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: line28 +// CHECK: col7 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line28 +// CHECK: col7 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: end +// CHECK: +// CHECK: +// CHECK: line29 +// CHECK: col5 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line29 +// CHECK: col5 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: kindevent +// CHECK: location +// CHECK: +// CHECK: line29 +// CHECK: col5 +// CHECK: file0 +// CHECK: +// CHECK: ranges +// CHECK: +// CHECK: +// CHECK: +// CHECK: line29 +// CHECK: col5 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line29 +// CHECK: col5 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: depth0 +// CHECK: extended_message +// CHECK: Called C++ object pointer is null +// CHECK: message +// CHECK: Called C++ object pointer is null +// CHECK: +// CHECK: +// CHECK: descriptionCalled C++ object pointer is null +// CHECK: categoryLogic error +// CHECK: typeCalled C++ object pointer is null +// CHECK: issue_context_kindfunction +// CHECK: issue_contexttest_ic_null +// CHECK: issue_hash2 +// CHECK: location +// CHECK: +// CHECK: line29 +// CHECK: col5 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: path +// CHECK: +// CHECK: +// CHECK: kindevent +// CHECK: location +// CHECK: +// CHECK: line33 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: ranges +// CHECK: +// CHECK: +// CHECK: +// CHECK: line33 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line33 +// CHECK: col21 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: depth0 +// CHECK: extended_message +// CHECK: Variable 'p' initialized to a null pointer value +// CHECK: message +// CHECK: Variable 'p' initialized to a null pointer value +// CHECK: +// CHECK: +// CHECK: kindcontrol +// CHECK: edges +// CHECK: +// CHECK: +// CHECK: start +// CHECK: +// CHECK: +// CHECK: line33 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line33 +// CHECK: col18 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: end +// CHECK: +// CHECK: +// CHECK: line36 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line36 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: kindevent +// CHECK: location +// CHECK: +// CHECK: line36 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: ranges +// CHECK: +// CHECK: +// CHECK: +// CHECK: line36 +// CHECK: col4 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line36 +// CHECK: col4 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: depth0 +// CHECK: extended_message +// CHECK: Called C++ object pointer is null +// CHECK: message +// CHECK: Called C++ object pointer is null +// CHECK: +// CHECK: +// CHECK: descriptionCalled C++ object pointer is null +// CHECK: categoryLogic error +// CHECK: typeCalled C++ object pointer is null +// CHECK: issue_context_kindfunction +// CHECK: issue_contexttest_ic_member_ptr +// CHECK: issue_hash4 +// CHECK: location +// CHECK: +// CHECK: line36 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: -- cgit v1.2.3