From 1e809b4c4c526d22c8f892d870856265f940e65a Mon Sep 17 00:00:00 2001 From: Ted Kremenek Date: Fri, 9 Mar 2012 01:13:14 +0000 Subject: [analyzer] Implement basic path diagnostic pruning based on "interesting" symbols and regions. Essentially, a bug centers around a story for various symbols and regions. We should only include the path diagnostic events that relate to those symbols and regions. The pruning is done by associating a set of interesting symbols and regions with a BugReporter, which can be modified at BugReport creation or by BugReporterVisitors. This patch reduces the diagnostics emitted in several of our test cases. I've vetted these as having desired behavior. The only regression is a missing null check diagnostic for the return value of realloc() in test/Analysis/malloc-plist.c. This will require some investigation to fix, and I have added a FIXME to the test case. llvm-svn: 152361 --- clang/test/Analysis/malloc-plist.c | 591 +++++++++++++++++++++------ clang/test/Analysis/plist-output-alternate.m | 252 +++++------- clang/test/Analysis/plist-output.m | 267 +++++------- 3 files changed, 660 insertions(+), 450 deletions(-) (limited to 'clang/test') diff --git a/clang/test/Analysis/malloc-plist.c b/clang/test/Analysis/malloc-plist.c index ceb444361c8..9d71d714fb0 100644 --- a/clang/test/Analysis/malloc-plist.c +++ b/clang/test/Analysis/malloc-plist.c @@ -1,4 +1,5 @@ -// RUN: %clang_cc1 -analyze -analyzer-checker=unix.Malloc -analyzer-output=plist -o - %s | FileCheck %s +// RUN: %clang_cc1 -analyze -analyzer-checker=unix.Malloc -analyzer-output=plist -o %t %s +// RUN: FileCheck --input-file %t %s typedef __typeof(sizeof(int)) size_t; void *malloc(size_t); @@ -23,6 +24,8 @@ void reallocDiagnostics() { char * buf = malloc(100); char * tmp; tmp = (char*)realloc(buf, 0x1000000); + // FIXME: we need a diagnostic for the null check. + // This requires propagating "interesting" for 'tmp'. if (!tmp) { return;// expected-warning {{leak}} } @@ -30,8 +33,20 @@ void reallocDiagnostics() { free(buf); } +void *wrapper() { + void *x = malloc(100); + // This is intentionally done to test diagnostic emission. + if (x) + return x; + return 0; +} + +void test_wrapper() { + void *buf = wrapper(); + (void) buf; +} + // CHECK: -// CHECK: // CHECK: // CHECK: // CHECK: files @@ -50,12 +65,12 @@ void reallocDiagnostics() { // CHECK: start // CHECK: // CHECK: -// CHECK: line9 +// CHECK: line10 // CHECK: col5 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line9 +// CHECK: line10 // CHECK: col5 // CHECK: file0 // CHECK: @@ -63,12 +78,12 @@ void reallocDiagnostics() { // CHECK: end // CHECK: // CHECK: -// CHECK: line9 +// CHECK: line10 // CHECK: col9 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line9 +// CHECK: line10 // CHECK: col9 // CHECK: file0 // CHECK: @@ -77,34 +92,6 @@ void reallocDiagnostics() { // CHECK: // CHECK: // CHECK: -// CHECK: kindevent -// CHECK: location -// CHECK: -// CHECK: line9 -// CHECK: col9 -// CHECK: file0 -// CHECK: -// CHECK: ranges -// CHECK: -// CHECK: -// CHECK: -// CHECK: line9 -// CHECK: col9 -// CHECK: file0 -// CHECK: -// CHECK: -// CHECK: line9 -// CHECK: col14 -// CHECK: file0 -// CHECK: -// CHECK: -// CHECK: -// CHECK: extended_message -// CHECK: Assuming 'in' is > 5 -// CHECK: message -// CHECK: Assuming 'in' is > 5 -// CHECK: -// CHECK: // CHECK: kindcontrol // CHECK: edges // CHECK: @@ -112,12 +99,12 @@ void reallocDiagnostics() { // CHECK: start // CHECK: // CHECK: -// CHECK: line9 +// CHECK: line10 // CHECK: col9 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line9 +// CHECK: line10 // CHECK: col9 // CHECK: file0 // CHECK: @@ -125,12 +112,12 @@ void reallocDiagnostics() { // CHECK: end // CHECK: // CHECK: -// CHECK: line10 +// CHECK: line11 // CHECK: col9 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line10 +// CHECK: line11 // CHECK: col9 // CHECK: file0 // CHECK: @@ -146,12 +133,12 @@ void reallocDiagnostics() { // CHECK: start // CHECK: // CHECK: -// CHECK: line10 +// CHECK: line11 // CHECK: col9 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line10 +// CHECK: line11 // CHECK: col9 // CHECK: file0 // CHECK: @@ -159,12 +146,12 @@ void reallocDiagnostics() { // CHECK: end // CHECK: // CHECK: -// CHECK: line10 +// CHECK: line11 // CHECK: col18 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line10 +// CHECK: line11 // CHECK: col27 // CHECK: file0 // CHECK: @@ -176,7 +163,7 @@ void reallocDiagnostics() { // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line10 +// CHECK: line11 // CHECK: col18 // CHECK: file0 // CHECK: @@ -184,12 +171,12 @@ void reallocDiagnostics() { // CHECK: // CHECK: // CHECK: -// CHECK: line10 +// CHECK: line11 // CHECK: col18 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line10 +// CHECK: line11 // CHECK: col27 // CHECK: file0 // CHECK: @@ -208,12 +195,12 @@ void reallocDiagnostics() { // CHECK: start // CHECK: // CHECK: -// CHECK: line10 +// CHECK: line11 // CHECK: col18 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line10 +// CHECK: line11 // CHECK: col27 // CHECK: file0 // CHECK: @@ -221,12 +208,12 @@ void reallocDiagnostics() { // CHECK: end // CHECK: // CHECK: -// CHECK: line13 +// CHECK: line14 // CHECK: col5 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line13 +// CHECK: line14 // CHECK: col6 // CHECK: file0 // CHECK: @@ -238,7 +225,7 @@ void reallocDiagnostics() { // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line13 +// CHECK: line14 // CHECK: col5 // CHECK: file0 // CHECK: @@ -246,12 +233,12 @@ void reallocDiagnostics() { // CHECK: // CHECK: // CHECK: -// CHECK: line13 +// CHECK: line14 // CHECK: col5 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line13 +// CHECK: line14 // CHECK: col6 // CHECK: file0 // CHECK: @@ -268,7 +255,7 @@ void reallocDiagnostics() { // CHECK: typeMemory leak // CHECK: location // CHECK: -// CHECK: line13 +// CHECK: line14 // CHECK: col5 // CHECK: file0 // CHECK: @@ -284,12 +271,12 @@ void reallocDiagnostics() { // CHECK: start // CHECK: // CHECK: -// CHECK: line17 +// CHECK: line18 // CHECK: col5 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line17 +// CHECK: line18 // CHECK: col5 // CHECK: file0 // CHECK: @@ -297,12 +284,12 @@ void reallocDiagnostics() { // CHECK: end // CHECK: // CHECK: -// CHECK: line18 +// CHECK: line19 // CHECK: col5 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line18 +// CHECK: line19 // CHECK: col5 // CHECK: file0 // CHECK: @@ -318,12 +305,12 @@ void reallocDiagnostics() { // CHECK: start // CHECK: // CHECK: -// CHECK: line18 +// CHECK: line19 // CHECK: col5 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line18 +// CHECK: line19 // CHECK: col5 // CHECK: file0 // CHECK: @@ -331,12 +318,12 @@ void reallocDiagnostics() { // CHECK: end // CHECK: // CHECK: -// CHECK: line18 +// CHECK: line19 // CHECK: col9 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line18 +// CHECK: line19 // CHECK: col30 // CHECK: file0 // CHECK: @@ -348,7 +335,7 @@ void reallocDiagnostics() { // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line18 +// CHECK: line19 // CHECK: col9 // CHECK: file0 // CHECK: @@ -356,12 +343,12 @@ void reallocDiagnostics() { // CHECK: // CHECK: // CHECK: -// CHECK: line18 +// CHECK: line19 // CHECK: col9 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line18 +// CHECK: line19 // CHECK: col30 // CHECK: file0 // CHECK: @@ -380,12 +367,12 @@ void reallocDiagnostics() { // CHECK: start // CHECK: // CHECK: -// CHECK: line18 +// CHECK: line19 // CHECK: col9 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line18 +// CHECK: line19 // CHECK: col30 // CHECK: file0 // CHECK: @@ -393,12 +380,12 @@ void reallocDiagnostics() { // CHECK: end // CHECK: // CHECK: -// CHECK: line20 +// CHECK: line21 // CHECK: col1 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line20 +// CHECK: line21 // CHECK: col1 // CHECK: file0 // CHECK: @@ -410,7 +397,7 @@ void reallocDiagnostics() { // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line20 +// CHECK: line21 // CHECK: col1 // CHECK: file0 // CHECK: @@ -425,7 +412,7 @@ void reallocDiagnostics() { // CHECK: typeMemory leak // CHECK: location // CHECK: -// CHECK: line20 +// CHECK: line21 // CHECK: col1 // CHECK: file0 // CHECK: @@ -441,12 +428,12 @@ void reallocDiagnostics() { // CHECK: start // CHECK: // CHECK: -// CHECK: line23 +// CHECK: line24 // CHECK: col5 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line23 +// CHECK: line24 // CHECK: col5 // CHECK: file0 // CHECK: @@ -454,12 +441,12 @@ void reallocDiagnostics() { // CHECK: end // CHECK: // CHECK: -// CHECK: line23 +// CHECK: line24 // CHECK: col18 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line23 +// CHECK: line24 // CHECK: col28 // CHECK: file0 // CHECK: @@ -471,7 +458,7 @@ void reallocDiagnostics() { // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line23 +// CHECK: line24 // CHECK: col18 // CHECK: file0 // CHECK: @@ -479,12 +466,12 @@ void reallocDiagnostics() { // CHECK: // CHECK: // CHECK: -// CHECK: line23 +// CHECK: line24 // CHECK: col18 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line23 +// CHECK: line24 // CHECK: col28 // CHECK: file0 // CHECK: @@ -503,12 +490,12 @@ void reallocDiagnostics() { // CHECK: start // CHECK: // CHECK: -// CHECK: line23 +// CHECK: line24 // CHECK: col18 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line23 +// CHECK: line24 // CHECK: col28 // CHECK: file0 // CHECK: @@ -516,12 +503,12 @@ void reallocDiagnostics() { // CHECK: end // CHECK: // CHECK: -// CHECK: line25 +// CHECK: line26 // CHECK: col5 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line25 +// CHECK: line26 // CHECK: col5 // CHECK: file0 // CHECK: @@ -537,12 +524,12 @@ void reallocDiagnostics() { // CHECK: start // CHECK: // CHECK: -// CHECK: line25 +// CHECK: line26 // CHECK: col5 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line25 +// CHECK: line26 // CHECK: col5 // CHECK: file0 // CHECK: @@ -550,12 +537,12 @@ void reallocDiagnostics() { // CHECK: end // CHECK: // CHECK: -// CHECK: line25 +// CHECK: line26 // CHECK: col18 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line25 +// CHECK: line26 // CHECK: col40 // CHECK: file0 // CHECK: @@ -567,7 +554,7 @@ void reallocDiagnostics() { // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line25 +// CHECK: line26 // CHECK: col18 // CHECK: file0 // CHECK: @@ -575,12 +562,12 @@ void reallocDiagnostics() { // CHECK: // CHECK: // CHECK: -// CHECK: line25 +// CHECK: line26 // CHECK: col18 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line25 +// CHECK: line26 // CHECK: col40 // CHECK: file0 // CHECK: @@ -599,12 +586,12 @@ void reallocDiagnostics() { // CHECK: start // CHECK: // CHECK: -// CHECK: line25 +// CHECK: line26 // CHECK: col18 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line25 +// CHECK: line26 // CHECK: col40 // CHECK: file0 // CHECK: @@ -612,12 +599,12 @@ void reallocDiagnostics() { // CHECK: end // CHECK: // CHECK: -// CHECK: line26 +// CHECK: line29 // CHECK: col5 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line26 +// CHECK: line29 // CHECK: col6 // CHECK: file0 // CHECK: @@ -629,7 +616,7 @@ void reallocDiagnostics() { // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line26 +// CHECK: line29 // CHECK: col5 // CHECK: file0 // CHECK: @@ -637,12 +624,12 @@ void reallocDiagnostics() { // CHECK: // CHECK: // CHECK: -// CHECK: line26 +// CHECK: line29 // CHECK: col5 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line26 +// CHECK: line29 // CHECK: col6 // CHECK: file0 // CHECK: @@ -661,12 +648,12 @@ void reallocDiagnostics() { // CHECK: start // CHECK: // CHECK: -// CHECK: line26 +// CHECK: line29 // CHECK: col5 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line26 +// CHECK: line29 // CHECK: col6 // CHECK: file0 // CHECK: @@ -674,12 +661,12 @@ void reallocDiagnostics() { // CHECK: end // CHECK: // CHECK: -// CHECK: line26 +// CHECK: line29 // CHECK: col9 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line26 +// CHECK: line29 // CHECK: col12 // CHECK: file0 // CHECK: @@ -688,10 +675,44 @@ void reallocDiagnostics() { // CHECK: // CHECK: // CHECK: +// CHECK: kindcontrol +// CHECK: edges +// CHECK: +// CHECK: +// CHECK: start +// CHECK: +// CHECK: +// CHECK: line29 +// CHECK: col9 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line29 +// CHECK: col12 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: end +// CHECK: +// CHECK: +// CHECK: line30 +// CHECK: col9 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line30 +// CHECK: col14 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line26 +// CHECK: line30 // CHECK: col9 // CHECK: file0 // CHECK: @@ -699,22 +720,36 @@ void reallocDiagnostics() { // CHECK: // CHECK: // CHECK: -// CHECK: line26 +// CHECK: line30 // CHECK: col9 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line26 -// CHECK: col12 +// CHECK: line30 +// CHECK: col14 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: extended_message -// CHECK: Assuming 'tmp' is null +// CHECK: Memory is never released; potential memory leak // CHECK: message -// CHECK: Assuming 'tmp' is null +// CHECK: Memory is never released; potential memory leak // CHECK: +// CHECK: +// CHECK: descriptionMemory is never released; potential memory leak +// CHECK: categoryMemory Error +// CHECK: typeMemory leak +// CHECK: location +// CHECK: +// CHECK: line30 +// CHECK: col9 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: path +// CHECK: // CHECK: // CHECK: kindcontrol // CHECK: edges @@ -723,26 +758,26 @@ void reallocDiagnostics() { // CHECK: start // CHECK: // CHECK: -// CHECK: line26 -// CHECK: col9 +// CHECK: line45 +// CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line26 -// CHECK: col12 +// CHECK: line45 +// CHECK: col3 // CHECK: file0 // CHECK: // CHECK: // CHECK: end // CHECK: // CHECK: -// CHECK: line27 -// CHECK: col9 +// CHECK: line45 +// CHECK: col15 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line27 -// CHECK: col14 +// CHECK: line45 +// CHECK: col15 // CHECK: file0 // CHECK: // CHECK: @@ -753,26 +788,340 @@ void reallocDiagnostics() { // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line27 -// CHECK: col9 +// CHECK: line45 +// CHECK: col15 // CHECK: file0 // CHECK: // CHECK: ranges // CHECK: // CHECK: // CHECK: -// CHECK: line27 -// CHECK: col9 +// CHECK: line45 +// CHECK: col15 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line27 -// CHECK: col14 +// CHECK: line45 +// CHECK: col23 // CHECK: file0 // CHECK: // CHECK: // CHECK: // CHECK: extended_message +// CHECK: Calling 'wrapper' +// CHECK: message +// CHECK: Calling 'wrapper' +// CHECK: +// CHECK: +// CHECK: kindevent +// CHECK: location +// CHECK: +// CHECK: line36 +// CHECK: col1 +// CHECK: file0 +// CHECK: +// CHECK: extended_message +// CHECK: Entered call to 'wrapper' +// CHECK: message +// CHECK: Entered call to 'wrapper' +// CHECK: +// CHECK: +// CHECK: kindcontrol +// CHECK: edges +// CHECK: +// CHECK: +// CHECK: start +// CHECK: +// CHECK: +// CHECK: line36 +// CHECK: col1 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line36 +// CHECK: col1 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: end +// CHECK: +// CHECK: +// CHECK: line37 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line37 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: kindcontrol +// CHECK: edges +// CHECK: +// CHECK: +// CHECK: start +// CHECK: +// CHECK: +// CHECK: line37 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line37 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: end +// CHECK: +// CHECK: +// CHECK: line37 +// CHECK: col13 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line37 +// CHECK: col23 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: kindevent +// CHECK: location +// CHECK: +// CHECK: line37 +// CHECK: col13 +// CHECK: file0 +// CHECK: +// CHECK: ranges +// CHECK: +// CHECK: +// CHECK: +// CHECK: line37 +// CHECK: col13 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line37 +// CHECK: col23 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: extended_message +// CHECK: Memory is allocated +// CHECK: message +// CHECK: Memory is allocated +// CHECK: +// CHECK: +// CHECK: kindcontrol +// CHECK: edges +// CHECK: +// CHECK: +// CHECK: start +// CHECK: +// CHECK: +// CHECK: line37 +// CHECK: col13 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line37 +// CHECK: col23 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: end +// CHECK: +// CHECK: +// CHECK: line39 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line39 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: kindcontrol +// CHECK: edges +// CHECK: +// CHECK: +// CHECK: start +// CHECK: +// CHECK: +// CHECK: line39 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line39 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: end +// CHECK: +// CHECK: +// CHECK: line39 +// CHECK: col7 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line39 +// CHECK: col7 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: kindevent +// CHECK: location +// CHECK: +// CHECK: line39 +// CHECK: col7 +// CHECK: file0 +// CHECK: +// CHECK: ranges +// CHECK: +// CHECK: +// CHECK: +// CHECK: line39 +// CHECK: col7 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line39 +// CHECK: col7 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: extended_message +// CHECK: Assuming 'x' is non-null +// CHECK: message +// CHECK: Assuming 'x' is non-null +// CHECK: +// CHECK: +// CHECK: kindcontrol +// CHECK: edges +// CHECK: +// CHECK: +// CHECK: start +// CHECK: +// CHECK: +// CHECK: line39 +// CHECK: col7 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line39 +// CHECK: col7 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: end +// CHECK: +// CHECK: +// CHECK: line40 +// CHECK: col5 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line40 +// CHECK: col5 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: kindevent +// CHECK: location +// CHECK: +// CHECK: line45 +// CHECK: col15 +// CHECK: file0 +// CHECK: +// CHECK: ranges +// CHECK: +// CHECK: +// CHECK: +// CHECK: line45 +// CHECK: col15 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line45 +// CHECK: col23 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: extended_message +// CHECK: Returning to 'test_wrapper' +// CHECK: message +// CHECK: Returning to 'test_wrapper' +// CHECK: +// CHECK: +// CHECK: kindcontrol +// CHECK: edges +// CHECK: +// CHECK: +// CHECK: start +// CHECK: +// CHECK: +// CHECK: line45 +// CHECK: col15 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line45 +// CHECK: col23 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: end +// CHECK: +// CHECK: +// CHECK: line47 +// CHECK: col1 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line47 +// CHECK: col1 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: kindevent +// CHECK: location +// CHECK: +// CHECK: line47 +// CHECK: col1 +// CHECK: file0 +// CHECK: +// CHECK: extended_message // CHECK: Memory is never released; potential memory leak // CHECK: message // CHECK: Memory is never released; potential memory leak @@ -783,8 +1132,8 @@ void reallocDiagnostics() { // CHECK: typeMemory leak // CHECK: location // CHECK: -// CHECK: line27 -// CHECK: col9 +// CHECK: line47 +// CHECK: col1 // CHECK: file0 // CHECK: // CHECK: diff --git a/clang/test/Analysis/plist-output-alternate.m b/clang/test/Analysis/plist-output-alternate.m index d619a7aa389..750c309e06e 100644 --- a/clang/test/Analysis/plist-output-alternate.m +++ b/clang/test/Analysis/plist-output-alternate.m @@ -1,4 +1,5 @@ -// RUN: %clang_cc1 -analyze -analyzer-checker=core,osx.cocoa.RetainCount,experimental.core -analyzer-store=region -analyzer-constraints=range -fblocks -analyzer-output=plist -o - %s | FileCheck %s +// RUN: %clang_cc1 -analyze -analyzer-checker=core,osx.cocoa.RetainCount,experimental.core -analyzer-store=region -analyzer-constraints=range -fblocks -analyzer-output=plist -o %t %s +// RUN: FileCheck --input-file %t %s void test_null_init(void) { int *p = 0; @@ -57,7 +58,6 @@ void rdar8331641(int x) { } // CHECK: -// CHECK: // CHECK: // CHECK: // CHECK: files @@ -76,12 +76,12 @@ void rdar8331641(int x) { // CHECK: start // CHECK: // CHECK: -// CHECK: line4 +// CHECK: line5 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line4 +// CHECK: line5 // CHECK: col3 // CHECK: file0 // CHECK: @@ -89,12 +89,12 @@ void rdar8331641(int x) { // CHECK: end // CHECK: // CHECK: -// CHECK: line5 +// CHECK: line6 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line5 +// CHECK: line6 // CHECK: col4 // CHECK: file0 // CHECK: @@ -106,7 +106,7 @@ void rdar8331641(int x) { // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line5 +// CHECK: line6 // CHECK: col3 // CHECK: file0 // CHECK: @@ -114,12 +114,12 @@ void rdar8331641(int x) { // CHECK: // CHECK: // CHECK: -// CHECK: line5 +// CHECK: line6 // CHECK: col4 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line5 +// CHECK: line6 // CHECK: col4 // CHECK: file0 // CHECK: @@ -136,7 +136,7 @@ void rdar8331641(int x) { // CHECK: typeDereference of null pointer // CHECK: location // CHECK: -// CHECK: line5 +// CHECK: line6 // CHECK: col3 // CHECK: file0 // CHECK: @@ -152,12 +152,12 @@ void rdar8331641(int x) { // CHECK: start // CHECK: // CHECK: -// CHECK: line9 +// CHECK: line10 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line9 +// CHECK: line10 // CHECK: col3 // CHECK: file0 // CHECK: @@ -165,12 +165,12 @@ void rdar8331641(int x) { // CHECK: end // CHECK: // CHECK: -// CHECK: line11 +// CHECK: line12 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line11 +// CHECK: line12 // CHECK: col4 // CHECK: file0 // CHECK: @@ -182,7 +182,7 @@ void rdar8331641(int x) { // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line11 +// CHECK: line12 // CHECK: col3 // CHECK: file0 // CHECK: @@ -190,12 +190,12 @@ void rdar8331641(int x) { // CHECK: // CHECK: // CHECK: -// CHECK: line11 +// CHECK: line12 // CHECK: col4 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line11 +// CHECK: line12 // CHECK: col4 // CHECK: file0 // CHECK: @@ -212,7 +212,7 @@ void rdar8331641(int x) { // CHECK: typeDereference of null pointer // CHECK: location // CHECK: -// CHECK: line11 +// CHECK: line12 // CHECK: col3 // CHECK: file0 // CHECK: @@ -228,12 +228,12 @@ void rdar8331641(int x) { // CHECK: start // CHECK: // CHECK: -// CHECK: line15 +// CHECK: line16 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line15 +// CHECK: line16 // CHECK: col3 // CHECK: file0 // CHECK: @@ -241,12 +241,12 @@ void rdar8331641(int x) { // CHECK: end // CHECK: // CHECK: -// CHECK: line18 +// CHECK: line19 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line18 +// CHECK: line19 // CHECK: col4 // CHECK: file0 // CHECK: @@ -258,7 +258,7 @@ void rdar8331641(int x) { // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line18 +// CHECK: line19 // CHECK: col3 // CHECK: file0 // CHECK: @@ -266,12 +266,12 @@ void rdar8331641(int x) { // CHECK: // CHECK: // CHECK: -// CHECK: line18 +// CHECK: line19 // CHECK: col4 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line18 +// CHECK: line19 // CHECK: col4 // CHECK: file0 // CHECK: @@ -288,7 +288,7 @@ void rdar8331641(int x) { // CHECK: typeDereference of null pointer // CHECK: location // CHECK: -// CHECK: line18 +// CHECK: line19 // CHECK: col3 // CHECK: file0 // CHECK: @@ -304,12 +304,12 @@ void rdar8331641(int x) { // CHECK: start // CHECK: // CHECK: -// CHECK: line22 +// CHECK: line23 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line22 +// CHECK: line23 // CHECK: col3 // CHECK: file0 // CHECK: @@ -317,12 +317,12 @@ void rdar8331641(int x) { // CHECK: end // CHECK: // CHECK: -// CHECK: line22 +// CHECK: line23 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line22 +// CHECK: line23 // CHECK: col8 // CHECK: file0 // CHECK: @@ -334,7 +334,7 @@ void rdar8331641(int x) { // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line22 +// CHECK: line23 // CHECK: col7 // CHECK: file0 // CHECK: @@ -342,12 +342,12 @@ void rdar8331641(int x) { // CHECK: // CHECK: // CHECK: -// CHECK: line22 +// CHECK: line23 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line22 +// CHECK: line23 // CHECK: col8 // CHECK: file0 // CHECK: @@ -366,12 +366,12 @@ void rdar8331641(int x) { // CHECK: start // CHECK: // CHECK: -// CHECK: line22 +// CHECK: line23 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line22 +// CHECK: line23 // CHECK: col8 // CHECK: file0 // CHECK: @@ -379,12 +379,12 @@ void rdar8331641(int x) { // CHECK: end // CHECK: // CHECK: -// CHECK: line23 +// CHECK: line24 // CHECK: col5 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line23 +// CHECK: line24 // CHECK: col6 // CHECK: file0 // CHECK: @@ -396,7 +396,7 @@ void rdar8331641(int x) { // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line23 +// CHECK: line24 // CHECK: col5 // CHECK: file0 // CHECK: @@ -404,12 +404,12 @@ void rdar8331641(int x) { // CHECK: // CHECK: // CHECK: -// CHECK: line23 +// CHECK: line24 // CHECK: col6 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line23 +// CHECK: line24 // CHECK: col6 // CHECK: file0 // CHECK: @@ -426,7 +426,7 @@ void rdar8331641(int x) { // CHECK: typeDereference of null pointer // CHECK: location // CHECK: -// CHECK: line23 +// CHECK: line24 // CHECK: col5 // CHECK: file0 // CHECK: @@ -442,12 +442,12 @@ void rdar8331641(int x) { // CHECK: start // CHECK: // CHECK: -// CHECK: line28 +// CHECK: line29 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line28 +// CHECK: line29 // CHECK: col3 // CHECK: file0 // CHECK: @@ -455,12 +455,12 @@ void rdar8331641(int x) { // CHECK: end // CHECK: // CHECK: -// CHECK: line28 +// CHECK: line29 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line28 +// CHECK: line29 // CHECK: col8 // CHECK: file0 // CHECK: @@ -469,34 +469,6 @@ void rdar8331641(int x) { // 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: extended_message -// CHECK: Assuming 'q' is null -// CHECK: message -// CHECK: Assuming 'q' is null -// CHECK: -// CHECK: // CHECK: kindcontrol // CHECK: edges // CHECK: @@ -504,12 +476,12 @@ void rdar8331641(int x) { // CHECK: start // CHECK: // CHECK: -// CHECK: line28 +// CHECK: line29 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line28 +// CHECK: line29 // CHECK: col8 // CHECK: file0 // CHECK: @@ -517,12 +489,12 @@ void rdar8331641(int x) { // CHECK: end // CHECK: // CHECK: -// CHECK: line29 +// CHECK: line30 // CHECK: col5 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line29 +// CHECK: line30 // CHECK: col5 // CHECK: file0 // CHECK: @@ -538,12 +510,12 @@ void rdar8331641(int x) { // CHECK: start // CHECK: // CHECK: -// CHECK: line29 +// CHECK: line30 // CHECK: col5 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line29 +// CHECK: line30 // CHECK: col5 // CHECK: file0 // CHECK: @@ -551,12 +523,12 @@ void rdar8331641(int x) { // CHECK: end // CHECK: // CHECK: -// CHECK: line30 +// CHECK: line31 // CHECK: col5 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line30 +// CHECK: line31 // CHECK: col6 // CHECK: file0 // CHECK: @@ -568,7 +540,7 @@ void rdar8331641(int x) { // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line30 +// CHECK: line31 // CHECK: col5 // CHECK: file0 // CHECK: @@ -576,12 +548,12 @@ void rdar8331641(int x) { // CHECK: // CHECK: // CHECK: -// CHECK: line30 +// CHECK: line31 // CHECK: col6 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line30 +// CHECK: line31 // CHECK: col6 // CHECK: file0 // CHECK: @@ -598,7 +570,7 @@ void rdar8331641(int x) { // CHECK: typeDereference of null pointer // CHECK: location // CHECK: -// CHECK: line30 +// CHECK: line31 // CHECK: col5 // CHECK: file0 // CHECK: @@ -614,12 +586,12 @@ void rdar8331641(int x) { // CHECK: start // CHECK: // CHECK: -// CHECK: line35 +// CHECK: line36 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line35 +// CHECK: line36 // CHECK: col3 // CHECK: file0 // CHECK: @@ -627,12 +599,12 @@ void rdar8331641(int x) { // CHECK: end // CHECK: // CHECK: -// CHECK: line35 +// CHECK: line36 // CHECK: col10 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line35 +// CHECK: line36 // CHECK: col10 // CHECK: file0 // CHECK: @@ -648,12 +620,12 @@ void rdar8331641(int x) { // CHECK: start // CHECK: // CHECK: -// CHECK: line35 +// CHECK: line36 // CHECK: col10 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line35 +// CHECK: line36 // CHECK: col10 // CHECK: file0 // CHECK: @@ -661,12 +633,12 @@ void rdar8331641(int x) { // CHECK: end // CHECK: // CHECK: -// CHECK: line37 +// CHECK: line38 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line37 +// CHECK: line38 // CHECK: col8 // CHECK: file0 // CHECK: @@ -678,7 +650,7 @@ void rdar8331641(int x) { // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line37 +// CHECK: line38 // CHECK: col3 // CHECK: file0 // CHECK: @@ -686,12 +658,12 @@ void rdar8331641(int x) { // CHECK: // CHECK: // CHECK: -// CHECK: line37 +// CHECK: line38 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line37 +// CHECK: line38 // CHECK: col7 // CHECK: file0 // CHECK: @@ -708,7 +680,7 @@ void rdar8331641(int x) { // CHECK: typeDereference of null pointer // CHECK: location // CHECK: -// CHECK: line37 +// CHECK: line38 // CHECK: col3 // CHECK: file0 // CHECK: @@ -724,12 +696,12 @@ void rdar8331641(int x) { // CHECK: start // CHECK: // CHECK: -// CHECK: line52 +// CHECK: line53 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line52 +// CHECK: line53 // CHECK: col3 // CHECK: file0 // CHECK: @@ -737,12 +709,12 @@ void rdar8331641(int x) { // CHECK: end // CHECK: // CHECK: -// CHECK: line53 +// CHECK: line54 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line53 +// CHECK: line54 // CHECK: col3 // CHECK: file0 // CHECK: @@ -758,12 +730,12 @@ void rdar8331641(int x) { // CHECK: start // CHECK: // CHECK: -// CHECK: line53 +// CHECK: line54 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line53 +// CHECK: line54 // CHECK: col3 // CHECK: file0 // CHECK: @@ -771,12 +743,12 @@ void rdar8331641(int x) { // CHECK: end // CHECK: // CHECK: -// CHECK: line53 +// CHECK: line54 // CHECK: col23 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line53 +// CHECK: line54 // CHECK: col82 // CHECK: file0 // CHECK: @@ -788,7 +760,7 @@ void rdar8331641(int x) { // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line53 +// CHECK: line54 // CHECK: col23 // CHECK: file0 // CHECK: @@ -796,12 +768,12 @@ void rdar8331641(int x) { // CHECK: // CHECK: // CHECK: -// CHECK: line53 +// CHECK: line54 // CHECK: col23 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line53 +// CHECK: line54 // CHECK: col82 // CHECK: file0 // CHECK: @@ -820,12 +792,12 @@ void rdar8331641(int x) { // CHECK: start // CHECK: // CHECK: -// CHECK: line53 +// CHECK: line54 // CHECK: col23 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line53 +// CHECK: line54 // CHECK: col82 // CHECK: file0 // CHECK: @@ -833,12 +805,12 @@ void rdar8331641(int x) { // CHECK: end // CHECK: // CHECK: -// CHECK: line54 +// CHECK: line55 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line54 +// CHECK: line55 // CHECK: col3 // CHECK: file0 // CHECK: @@ -854,12 +826,12 @@ void rdar8331641(int x) { // CHECK: start // CHECK: // CHECK: -// CHECK: line54 +// CHECK: line55 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line54 +// CHECK: line55 // CHECK: col3 // CHECK: file0 // CHECK: @@ -867,12 +839,12 @@ void rdar8331641(int x) { // CHECK: end // CHECK: // CHECK: -// CHECK: line54 +// CHECK: line55 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line54 +// CHECK: line55 // CHECK: col7 // CHECK: file0 // CHECK: @@ -881,34 +853,6 @@ void rdar8331641(int x) { // CHECK: // CHECK: // CHECK: -// CHECK: kindevent -// CHECK: location -// CHECK: -// CHECK: line54 -// CHECK: col7 -// CHECK: file0 -// CHECK: -// CHECK: ranges -// CHECK: -// CHECK: -// CHECK: -// CHECK: line54 -// CHECK: col7 -// CHECK: file0 -// CHECK: -// CHECK: -// CHECK: line54 -// CHECK: col7 -// CHECK: file0 -// CHECK: -// CHECK: -// CHECK: -// CHECK: extended_message -// CHECK: Assuming 'x' is 0 -// CHECK: message -// CHECK: Assuming 'x' is 0 -// CHECK: -// CHECK: // CHECK: kindcontrol // CHECK: edges // CHECK: @@ -916,12 +860,12 @@ void rdar8331641(int x) { // CHECK: start // CHECK: // CHECK: -// CHECK: line54 +// CHECK: line55 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line54 +// CHECK: line55 // CHECK: col7 // CHECK: file0 // CHECK: @@ -929,12 +873,12 @@ void rdar8331641(int x) { // CHECK: end // CHECK: // CHECK: -// CHECK: line56 +// CHECK: line57 // CHECK: col10 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line56 +// CHECK: line57 // CHECK: col10 // CHECK: file0 // CHECK: @@ -950,12 +894,12 @@ void rdar8331641(int x) { // CHECK: start // CHECK: // CHECK: -// CHECK: line56 +// CHECK: line57 // CHECK: col10 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line56 +// CHECK: line57 // CHECK: col10 // CHECK: file0 // CHECK: @@ -963,12 +907,12 @@ void rdar8331641(int x) { // CHECK: end // CHECK: // CHECK: -// CHECK: line57 +// CHECK: line58 // CHECK: col1 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line57 +// CHECK: line58 // CHECK: col1 // CHECK: file0 // CHECK: @@ -980,7 +924,7 @@ void rdar8331641(int x) { // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line57 +// CHECK: line58 // CHECK: col1 // CHECK: file0 // CHECK: @@ -995,7 +939,7 @@ void rdar8331641(int x) { // CHECK: typeLeak // CHECK: location // CHECK: -// CHECK: line57 +// CHECK: line58 // CHECK: col1 // CHECK: file0 // CHECK: diff --git a/clang/test/Analysis/plist-output.m b/clang/test/Analysis/plist-output.m index 691d6e60f23..375d2342075 100644 --- a/clang/test/Analysis/plist-output.m +++ b/clang/test/Analysis/plist-output.m @@ -24,9 +24,10 @@ void test_null_cond(int *p) { *p = 0xDEADBEEF; } } - + void test_null_cond_transitive(int *q) { if (!q) { + // FIXME: we need a diagnostic saying that p is initialized to 0 int *p = q; *p = 0xDEADBEEF; } @@ -80,7 +81,6 @@ int test_cond_assign() { @end // CHECK: -// CHECK: // CHECK: // CHECK: // CHECK: files @@ -492,34 +492,6 @@ int test_cond_assign() { // CHECK: // CHECK: // CHECK: -// CHECK: kindevent -// CHECK: location -// CHECK: -// CHECK: line29 -// CHECK: col7 -// CHECK: file0 -// CHECK: -// CHECK: ranges -// CHECK: -// CHECK: -// CHECK: -// CHECK: line29 -// CHECK: col7 -// CHECK: file0 -// CHECK: -// CHECK: -// CHECK: line29 -// CHECK: col8 -// CHECK: file0 -// CHECK: -// CHECK: -// CHECK: -// CHECK: extended_message -// CHECK: Assuming 'q' is null -// CHECK: message -// CHECK: Assuming 'q' is null -// CHECK: -// CHECK: // CHECK: kindcontrol // CHECK: edges // CHECK: @@ -540,12 +512,12 @@ int test_cond_assign() { // CHECK: end // CHECK: // CHECK: -// CHECK: line30 +// CHECK: line31 // CHECK: col5 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line30 +// CHECK: line31 // CHECK: col5 // CHECK: file0 // CHECK: @@ -561,12 +533,12 @@ int test_cond_assign() { // CHECK: start // CHECK: // CHECK: -// CHECK: line30 +// CHECK: line31 // CHECK: col5 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line30 +// CHECK: line31 // CHECK: col5 // CHECK: file0 // CHECK: @@ -574,12 +546,12 @@ int test_cond_assign() { // CHECK: end // CHECK: // CHECK: -// CHECK: line31 +// CHECK: line32 // CHECK: col5 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line31 +// CHECK: line32 // CHECK: col6 // CHECK: file0 // CHECK: @@ -591,7 +563,7 @@ int test_cond_assign() { // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line31 +// CHECK: line32 // CHECK: col5 // CHECK: file0 // CHECK: @@ -599,12 +571,12 @@ int test_cond_assign() { // CHECK: // CHECK: // CHECK: -// CHECK: line31 +// CHECK: line32 // CHECK: col6 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line31 +// CHECK: line32 // CHECK: col6 // CHECK: file0 // CHECK: @@ -621,7 +593,7 @@ int test_cond_assign() { // CHECK: typeDereference of null pointer // CHECK: location // CHECK: -// CHECK: line31 +// CHECK: line32 // CHECK: col5 // CHECK: file0 // CHECK: @@ -637,12 +609,12 @@ int test_cond_assign() { // CHECK: start // CHECK: // CHECK: -// CHECK: line36 +// CHECK: line37 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line36 +// CHECK: line37 // CHECK: col3 // CHECK: file0 // CHECK: @@ -650,12 +622,12 @@ int test_cond_assign() { // CHECK: end // CHECK: // CHECK: -// CHECK: line36 +// CHECK: line37 // CHECK: col10 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line36 +// CHECK: line37 // CHECK: col10 // CHECK: file0 // CHECK: @@ -671,12 +643,12 @@ int test_cond_assign() { // CHECK: start // CHECK: // CHECK: -// CHECK: line36 +// CHECK: line37 // CHECK: col10 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line36 +// CHECK: line37 // CHECK: col10 // CHECK: file0 // CHECK: @@ -684,12 +656,12 @@ int test_cond_assign() { // CHECK: end // CHECK: // CHECK: -// CHECK: line38 +// CHECK: line39 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line38 +// CHECK: line39 // CHECK: col8 // CHECK: file0 // CHECK: @@ -701,7 +673,7 @@ int test_cond_assign() { // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line38 +// CHECK: line39 // CHECK: col3 // CHECK: file0 // CHECK: @@ -709,12 +681,12 @@ int test_cond_assign() { // CHECK: // CHECK: // CHECK: -// CHECK: line38 +// CHECK: line39 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line38 +// CHECK: line39 // CHECK: col7 // CHECK: file0 // CHECK: @@ -731,7 +703,7 @@ int test_cond_assign() { // CHECK: typeDereference of null pointer // CHECK: location // CHECK: -// CHECK: line38 +// CHECK: line39 // CHECK: col3 // CHECK: file0 // CHECK: @@ -747,12 +719,12 @@ int test_cond_assign() { // CHECK: start // CHECK: // CHECK: -// CHECK: line43 +// CHECK: line44 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line43 +// CHECK: line44 // CHECK: col3 // CHECK: file0 // CHECK: @@ -760,12 +732,12 @@ int test_cond_assign() { // CHECK: end // CHECK: // CHECK: -// CHECK: line43 +// CHECK: line44 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line43 +// CHECK: line44 // CHECK: col7 // CHECK: file0 // CHECK: @@ -774,34 +746,6 @@ int test_cond_assign() { // CHECK: // CHECK: // CHECK: -// CHECK: kindevent -// CHECK: location -// CHECK: -// CHECK: line43 -// CHECK: col7 -// CHECK: file0 -// CHECK: -// CHECK: ranges -// CHECK: -// CHECK: -// CHECK: -// CHECK: line43 -// CHECK: col7 -// CHECK: file0 -// CHECK: -// CHECK: -// CHECK: line43 -// CHECK: col12 -// CHECK: file0 -// CHECK: -// CHECK: -// CHECK: -// CHECK: extended_message -// CHECK: Assuming 'a' is not equal to 0 -// CHECK: message -// CHECK: Assuming 'a' is not equal to 0 -// CHECK: -// CHECK: // CHECK: kindcontrol // CHECK: edges // CHECK: @@ -809,12 +753,12 @@ int test_cond_assign() { // CHECK: start // CHECK: // CHECK: -// CHECK: line43 +// CHECK: line44 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line43 +// CHECK: line44 // CHECK: col7 // CHECK: file0 // CHECK: @@ -822,12 +766,12 @@ int test_cond_assign() { // CHECK: end // CHECK: // CHECK: -// CHECK: line46 +// CHECK: line47 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line46 +// CHECK: line47 // CHECK: col3 // CHECK: file0 // CHECK: @@ -843,12 +787,12 @@ int test_cond_assign() { // CHECK: start // CHECK: // CHECK: -// CHECK: line46 +// CHECK: line47 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line46 +// CHECK: line47 // CHECK: col3 // CHECK: file0 // CHECK: @@ -856,12 +800,12 @@ int test_cond_assign() { // CHECK: end // CHECK: // CHECK: -// CHECK: line46 +// CHECK: line47 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line46 +// CHECK: line47 // CHECK: col7 // CHECK: file0 // CHECK: @@ -870,34 +814,6 @@ int test_cond_assign() { // CHECK: // CHECK: // CHECK: -// CHECK: kindevent -// CHECK: location -// CHECK: -// CHECK: line46 -// CHECK: col7 -// CHECK: file0 -// CHECK: -// CHECK: ranges -// CHECK: -// CHECK: -// CHECK: -// CHECK: line46 -// CHECK: col7 -// CHECK: file0 -// CHECK: -// CHECK: -// CHECK: line46 -// CHECK: col12 -// CHECK: file0 -// CHECK: -// CHECK: -// CHECK: -// CHECK: extended_message -// CHECK: Assuming 'b' is equal to 0 -// CHECK: message -// CHECK: Assuming 'b' is equal to 0 -// CHECK: -// CHECK: // CHECK: kindcontrol // CHECK: edges // CHECK: @@ -905,12 +821,12 @@ int test_cond_assign() { // CHECK: start // CHECK: // CHECK: -// CHECK: line46 +// CHECK: line47 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line46 +// CHECK: line47 // CHECK: col7 // CHECK: file0 // CHECK: @@ -918,12 +834,12 @@ int test_cond_assign() { // CHECK: end // CHECK: // CHECK: -// CHECK: line49 +// CHECK: line50 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line49 +// CHECK: line50 // CHECK: col3 // CHECK: file0 // CHECK: @@ -939,12 +855,12 @@ int test_cond_assign() { // CHECK: start // CHECK: // CHECK: -// CHECK: line49 +// CHECK: line50 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line49 +// CHECK: line50 // CHECK: col3 // CHECK: file0 // CHECK: @@ -952,12 +868,12 @@ int test_cond_assign() { // CHECK: end // CHECK: // CHECK: -// CHECK: line50 +// CHECK: line51 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line50 +// CHECK: line51 // CHECK: col4 // CHECK: file0 // CHECK: @@ -969,7 +885,7 @@ int test_cond_assign() { // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line50 +// CHECK: line51 // CHECK: col3 // CHECK: file0 // CHECK: @@ -977,12 +893,12 @@ int test_cond_assign() { // CHECK: // CHECK: // CHECK: -// CHECK: line50 +// CHECK: line51 // CHECK: col4 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line50 +// CHECK: line51 // CHECK: col4 // CHECK: file0 // CHECK: @@ -999,7 +915,7 @@ int test_cond_assign() { // CHECK: typeDereference of null pointer // CHECK: location // CHECK: -// CHECK: line50 +// CHECK: line51 // CHECK: col3 // CHECK: file0 // CHECK: @@ -1015,12 +931,12 @@ int test_cond_assign() { // CHECK: start // CHECK: // CHECK: -// CHECK: line55 +// CHECK: line56 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line55 +// CHECK: line56 // CHECK: col3 // CHECK: file0 // CHECK: @@ -1028,12 +944,12 @@ int test_cond_assign() { // CHECK: end // CHECK: // CHECK: -// CHECK: line56 +// CHECK: line57 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line56 +// CHECK: line57 // CHECK: col3 // CHECK: file0 // CHECK: @@ -1049,12 +965,12 @@ int test_cond_assign() { // CHECK: start // CHECK: // CHECK: -// CHECK: line56 +// CHECK: line57 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line56 +// CHECK: line57 // CHECK: col3 // CHECK: file0 // CHECK: @@ -1062,12 +978,12 @@ int test_cond_assign() { // CHECK: end // CHECK: // CHECK: -// CHECK: line56 +// CHECK: line57 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line56 +// CHECK: line57 // CHECK: col7 // CHECK: file0 // CHECK: @@ -1079,7 +995,7 @@ int test_cond_assign() { // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line56 +// CHECK: line57 // CHECK: col7 // CHECK: file0 // CHECK: @@ -1087,12 +1003,12 @@ int test_cond_assign() { // CHECK: // CHECK: // CHECK: -// CHECK: line56 +// CHECK: line57 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line56 +// CHECK: line57 // CHECK: col7 // CHECK: file0 // CHECK: @@ -1111,12 +1027,12 @@ int test_cond_assign() { // CHECK: start // CHECK: // CHECK: -// CHECK: line56 +// CHECK: line57 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line56 +// CHECK: line57 // CHECK: col7 // CHECK: file0 // CHECK: @@ -1124,12 +1040,12 @@ int test_cond_assign() { // CHECK: end // CHECK: // CHECK: -// CHECK: line58 +// CHECK: line59 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line58 +// CHECK: line59 // CHECK: col3 // CHECK: file0 // CHECK: @@ -1145,12 +1061,12 @@ int test_cond_assign() { // CHECK: start // CHECK: // CHECK: -// CHECK: line58 +// CHECK: line59 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line58 +// CHECK: line59 // CHECK: col3 // CHECK: file0 // CHECK: @@ -1158,12 +1074,12 @@ int test_cond_assign() { // CHECK: end // CHECK: // CHECK: -// CHECK: line58 +// CHECK: line59 // CHECK: col10 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line58 +// CHECK: line59 // CHECK: col11 // CHECK: file0 // CHECK: @@ -1175,7 +1091,7 @@ int test_cond_assign() { // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line58 +// CHECK: line59 // CHECK: col10 // CHECK: file0 // CHECK: @@ -1183,12 +1099,12 @@ int test_cond_assign() { // CHECK: // CHECK: // CHECK: -// CHECK: line58 +// CHECK: line59 // CHECK: col11 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line58 +// CHECK: line59 // CHECK: col11 // CHECK: file0 // CHECK: @@ -1205,7 +1121,7 @@ int test_cond_assign() { // CHECK: typeDereference of null pointer // CHECK: location // CHECK: -// CHECK: line58 +// CHECK: line59 // CHECK: col10 // CHECK: file0 // CHECK: @@ -1221,12 +1137,12 @@ int test_cond_assign() { // CHECK: start // CHECK: // CHECK: -// CHECK: line75 +// CHECK: line76 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line75 +// CHECK: line76 // CHECK: col3 // CHECK: file0 // CHECK: @@ -1234,12 +1150,12 @@ int test_cond_assign() { // CHECK: end // CHECK: // CHECK: -// CHECK: line75 +// CHECK: line76 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line75 +// CHECK: line76 // CHECK: col7 // CHECK: file0 // CHECK: @@ -1255,12 +1171,12 @@ int test_cond_assign() { // CHECK: start // CHECK: // CHECK: -// CHECK: line75 +// CHECK: line76 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line75 +// CHECK: line76 // CHECK: col7 // CHECK: file0 // CHECK: @@ -1268,12 +1184,12 @@ int test_cond_assign() { // CHECK: end // CHECK: // CHECK: -// CHECK: line75 +// CHECK: line76 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line75 +// CHECK: line76 // CHECK: col3 // CHECK: file0 // CHECK: @@ -1289,12 +1205,12 @@ int test_cond_assign() { // CHECK: start // CHECK: // CHECK: -// CHECK: line75 +// CHECK: line76 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line75 +// CHECK: line76 // CHECK: col3 // CHECK: file0 // CHECK: @@ -1302,12 +1218,12 @@ int test_cond_assign() { // CHECK: end // CHECK: // CHECK: -// CHECK: line76 +// CHECK: line77 // CHECK: col5 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line76 +// CHECK: line77 // CHECK: col5 // CHECK: file0 // CHECK: @@ -1323,12 +1239,12 @@ int test_cond_assign() { // CHECK: start // CHECK: // CHECK: -// CHECK: line76 +// CHECK: line77 // CHECK: col5 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line76 +// CHECK: line77 // CHECK: col5 // CHECK: file0 // CHECK: @@ -1336,12 +1252,12 @@ int test_cond_assign() { // CHECK: end // CHECK: // CHECK: -// CHECK: line77 +// CHECK: line78 // CHECK: col5 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line77 +// CHECK: line78 // CHECK: col6 // CHECK: file0 // CHECK: @@ -1353,7 +1269,7 @@ int test_cond_assign() { // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line77 +// CHECK: line78 // CHECK: col5 // CHECK: file0 // CHECK: @@ -1361,12 +1277,12 @@ int test_cond_assign() { // CHECK: // CHECK: // CHECK: -// CHECK: line77 +// CHECK: line78 // CHECK: col6 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line77 +// CHECK: line78 // CHECK: col6 // CHECK: file0 // CHECK: @@ -1383,7 +1299,7 @@ int test_cond_assign() { // CHECK: typeDereference of null pointer // CHECK: location // CHECK: -// CHECK: line77 +// CHECK: line78 // CHECK: col5 // CHECK: file0 // CHECK: @@ -1392,3 +1308,4 @@ int test_cond_assign() { // CHECK: // CHECK: + -- cgit v1.2.3