From c72c57c9e9b69944e3e009cd5e209634839581d3 Mon Sep 17 00:00:00 2001 From: dim Date: Mon, 8 Apr 2013 18:45:10 +0000 Subject: Vendor import of clang trunk r178860: http://llvm.org/svn/llvm-project/cfe/trunk@178860 --- test/Analysis/unix-fns.c | 172 ++++++++++++++++++++++++++++++++--------------- 1 file changed, 117 insertions(+), 55 deletions(-) (limited to 'test/Analysis/unix-fns.c') diff --git a/test/Analysis/unix-fns.c b/test/Analysis/unix-fns.c index edab5e1..8daac1c 100644 --- a/test/Analysis/unix-fns.c +++ b/test/Analysis/unix-fns.c @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -analyze -analyzer-checker=core,unix.API,osx.API %s -analyzer-store=region -analyzer-output=plist -analyzer-ipa=inlining -analyzer-eagerly-assume -analyzer-config faux-bodies=true -fblocks -verify -o %t.plist +// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -analyze -analyzer-checker=core,unix.API,osx.API %s -analyzer-store=region -analyzer-output=plist -analyzer-eagerly-assume -analyzer-config faux-bodies=true -fblocks -verify -o %t.plist // RUN: FileCheck --input-file=%t.plist %s struct _opaque_pthread_once_t { @@ -408,7 +408,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: typeImproper use of 'open' // CHECK-NEXT: issue_context_kindfunction // CHECK-NEXT: issue_contexttest_open -// CHECK-NEXT: issue_hash6 +// CHECK-NEXT: issue_hash6 // CHECK-NEXT: location // CHECK-NEXT: // CHECK-NEXT: line55 @@ -552,11 +552,11 @@ void test_inline_dispatch_once() { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: descriptionCall to 'dispatch_once' uses the local variable 'pred' for the predicate value. Using such transient memory for the predicate is potentially dangerous. Perhaps you intended to declare the variable as 'static'? -// CHECK-NEXT: categoryMac OS X API +// CHECK-NEXT: categoryAPI Misuse (Apple) // CHECK-NEXT: typeImproper use of 'dispatch_once' // CHECK-NEXT: issue_context_kindfunction // CHECK-NEXT: issue_contexttest_dispatch_once -// CHECK-NEXT: issue_hash2 +// CHECK-NEXT: issue_hash2 // CHECK-NEXT: location // CHECK-NEXT: // CHECK-NEXT: line62 @@ -636,7 +636,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: typeImproper use of 'pthread_once' // CHECK-NEXT: issue_context_kindfunction // CHECK-NEXT: issue_contexttest_pthread_once -// CHECK-NEXT: issue_hash2 +// CHECK-NEXT: issue_hash2 // CHECK-NEXT: location // CHECK-NEXT: // CHECK-NEXT: line73 @@ -716,7 +716,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: typeUndefined allocation of 0 bytes (CERT MEM04-C; CWE-131) // CHECK-NEXT: issue_context_kindfunction // CHECK-NEXT: issue_contextpr2899 -// CHECK-NEXT: issue_hash1 +// CHECK-NEXT: issue_hash1 // CHECK-NEXT: location // CHECK-NEXT: // CHECK-NEXT: line82 @@ -796,7 +796,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: typeUndefined allocation of 0 bytes (CERT MEM04-C; CWE-131) // CHECK-NEXT: issue_context_kindfunction // CHECK-NEXT: issue_contexttest_calloc -// CHECK-NEXT: issue_hash1 +// CHECK-NEXT: issue_hash1 // CHECK-NEXT: location // CHECK-NEXT: // CHECK-NEXT: line94 @@ -876,7 +876,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: typeUndefined allocation of 0 bytes (CERT MEM04-C; CWE-131) // CHECK-NEXT: issue_context_kindfunction // CHECK-NEXT: issue_contexttest_calloc2 -// CHECK-NEXT: issue_hash1 +// CHECK-NEXT: issue_hash1 // CHECK-NEXT: location // CHECK-NEXT: // CHECK-NEXT: line100 @@ -956,7 +956,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: typeUndefined allocation of 0 bytes (CERT MEM04-C; CWE-131) // CHECK-NEXT: issue_context_kindfunction // CHECK-NEXT: issue_contexttest_realloc -// CHECK-NEXT: issue_hash1 +// CHECK-NEXT: issue_hash1 // CHECK-NEXT: location // CHECK-NEXT: // CHECK-NEXT: line112 @@ -1036,7 +1036,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: typeUndefined allocation of 0 bytes (CERT MEM04-C; CWE-131) // CHECK-NEXT: issue_context_kindfunction // CHECK-NEXT: issue_contexttest_reallocf -// CHECK-NEXT: issue_hash1 +// CHECK-NEXT: issue_hash1 // CHECK-NEXT: location // CHECK-NEXT: // CHECK-NEXT: line118 @@ -1116,7 +1116,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: typeUndefined allocation of 0 bytes (CERT MEM04-C; CWE-131) // CHECK-NEXT: issue_context_kindfunction // CHECK-NEXT: issue_contexttest_alloca -// CHECK-NEXT: issue_hash1 +// CHECK-NEXT: issue_hash1 // CHECK-NEXT: location // CHECK-NEXT: // CHECK-NEXT: line136 @@ -1196,7 +1196,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: typeUndefined allocation of 0 bytes (CERT MEM04-C; CWE-131) // CHECK-NEXT: issue_context_kindfunction // CHECK-NEXT: issue_contexttest_builtin_alloca -// CHECK-NEXT: issue_hash1 +// CHECK-NEXT: issue_hash1 // CHECK-NEXT: location // CHECK-NEXT: // CHECK-NEXT: line148 @@ -1276,7 +1276,7 @@ void test_inline_dispatch_once() { // CHECK-NEXT: typeUndefined allocation of 0 bytes (CERT MEM04-C; CWE-131) // CHECK-NEXT: issue_context_kindfunction // CHECK-NEXT: issue_contexttest_valloc -// CHECK-NEXT: issue_hash1 +// CHECK-NEXT: issue_hash1 // CHECK-NEXT: location // CHECK-NEXT: // CHECK-NEXT: line160 @@ -1352,11 +1352,11 @@ void test_inline_dispatch_once() { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: descriptionCall to 'dispatch_once' uses the local variable 'pred' for the predicate value. Using such transient memory for the predicate is potentially dangerous. Perhaps you intended to declare the variable as 'static'? -// CHECK-NEXT: categoryMac OS X API +// CHECK-NEXT: categoryAPI Misuse (Apple) // CHECK-NEXT: typeImproper use of 'dispatch_once' // CHECK-NEXT: issue_context_kindfunction // CHECK-NEXT: issue_contexttest_dispatch_once_in_macro -// CHECK-NEXT: issue_hash2 +// CHECK-NEXT: issue_hash2 // CHECK-NEXT: location // CHECK-NEXT: // CHECK-NEXT: line184 @@ -1392,9 +1392,9 @@ void test_inline_dispatch_once() { // CHECK-NEXT: // CHECK-NEXT: depth0 // CHECK-NEXT: extended_message -// CHECK-NEXT: Variable 'p' initialized to a null pointer value +// CHECK-NEXT: 'p' initialized to a null pointer value // CHECK-NEXT: message -// CHECK-NEXT: Variable 'p' initialized to a null pointer value +// CHECK-NEXT: 'p' initialized to a null pointer value // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: kindcontrol @@ -1418,12 +1418,12 @@ void test_inline_dispatch_once() { // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: line190 -// CHECK-NEXT: col3 +// CHECK-NEXT: col24 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: line190 -// CHECK-NEXT: col15 +// CHECK-NEXT: col24 // CHECK-NEXT: file0 // CHECK-NEXT: // CHECK-NEXT: @@ -1435,6 +1435,35 @@ void test_inline_dispatch_once() { // CHECK-NEXT: location // CHECK-NEXT: // CHECK-NEXT: line190 +// CHECK-NEXT: col24 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: ranges +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line190 +// CHECK-NEXT: col24 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line194 +// CHECK-NEXT: col3 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: depth0 +// CHECK-NEXT: extended_message +// CHECK-NEXT: 'p' captured by block as a null pointer value +// CHECK-NEXT: message +// CHECK-NEXT: 'p' captured by block as a null pointer value +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: kindevent +// CHECK-NEXT: location +// CHECK-NEXT: +// CHECK-NEXT: line190 // CHECK-NEXT: col3 // CHECK-NEXT: file0 // CHECK-NEXT: @@ -1477,25 +1506,10 @@ void test_inline_dispatch_once() { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line190 -// CHECK-NEXT: col3 +// CHECK-NEXT: line40 +// CHECK-NEXT: col1 // CHECK-NEXT: file0 // CHECK-NEXT: -// CHECK-NEXT: ranges -// CHECK-NEXT: -// CHECK-NEXT: -// CHECK-NEXT: -// CHECK-NEXT: line190 -// CHECK-NEXT: col3 -// CHECK-NEXT: file0 -// CHECK-NEXT: -// CHECK-NEXT: -// CHECK-NEXT: line194 -// CHECK-NEXT: col4 -// CHECK-NEXT: file0 -// CHECK-NEXT: -// CHECK-NEXT: -// CHECK-NEXT: // CHECK-NEXT: depth1 // CHECK-NEXT: extended_message // CHECK-NEXT: Calling anonymous block @@ -1749,9 +1763,72 @@ void test_inline_dispatch_once() { // CHECK-NEXT: // CHECK-NEXT: depth0 // CHECK-NEXT: extended_message -// CHECK-NEXT: Variable 'p' initialized to a null pointer value +// CHECK-NEXT: 'p' initialized to a null pointer value +// CHECK-NEXT: message +// CHECK-NEXT: 'p' initialized to a null pointer value +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: kindcontrol +// CHECK-NEXT: edges +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: start +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line200 +// CHECK-NEXT: col3 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line200 +// CHECK-NEXT: col5 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: end +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line201 +// CHECK-NEXT: col24 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line201 +// CHECK-NEXT: col24 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: kindevent +// CHECK-NEXT: location +// CHECK-NEXT: +// CHECK-NEXT: line201 +// CHECK-NEXT: col24 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: ranges +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line201 +// CHECK-NEXT: col24 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: line203 +// CHECK-NEXT: col3 +// CHECK-NEXT: file0 +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: +// CHECK-NEXT: depth0 +// CHECK-NEXT: extended_message +// CHECK-NEXT: 'p' captured by block as a null pointer value // CHECK-NEXT: message -// CHECK-NEXT: Variable 'p' initialized to a null pointer value +// CHECK-NEXT: 'p' captured by block as a null pointer value // CHECK-NEXT: // CHECK-NEXT: // CHECK-NEXT: kindevent @@ -1877,25 +1954,10 @@ void test_inline_dispatch_once() { // CHECK-NEXT: kindevent // CHECK-NEXT: location // CHECK-NEXT: -// CHECK-NEXT: line177 -// CHECK-NEXT: col3 +// CHECK-NEXT: line39 +// CHECK-NEXT: col1 // CHECK-NEXT: file0 // CHECK-NEXT: -// CHECK-NEXT: ranges -// CHECK-NEXT: -// CHECK-NEXT: -// CHECK-NEXT: -// CHECK-NEXT: line177 -// CHECK-NEXT: col3 -// CHECK-NEXT: file0 -// CHECK-NEXT: -// CHECK-NEXT: -// CHECK-NEXT: line177 -// CHECK-NEXT: col33 -// CHECK-NEXT: file0 -// CHECK-NEXT: -// CHECK-NEXT: -// CHECK-NEXT: // CHECK-NEXT: depth2 // CHECK-NEXT: extended_message // CHECK-NEXT: Calling anonymous block -- cgit v1.1