Index: clang/test/Analysis/malloc-plist.c
===================================================================
--- clang/test/Analysis/malloc-plist.c
+++ clang/test/Analysis/malloc-plist.c
@@ -1,5 +1,5 @@
// RUN: rm -f %t
-// RUN: %clang_analyze_cc1 -fblocks -analyzer-checker=core,unix.Malloc -analyzer-output=plist -o %t %s
+// RUN: %clang_analyze_cc1 -fblocks -analyzer-checker=core,unix.Malloc -analyzer-output=plist -verify -o %t %s
// RUN: FileCheck -input-file %t %s
typedef __typeof(sizeof(int)) size_t;
@@ -19,8 +19,8 @@
void myArrayAllocation() {
int **A;
A = malloc(2*sizeof(int*));
- A[0] = 0;// expected-warning {{leak}}
-}
+ A[0] = 0;
+}//expected-warning{{Potential leak}}
void reallocDiagnostics() {
char * buf = malloc(100);
@@ -44,7 +44,7 @@
void test_wrapper() {
void *buf = wrapper();
(void) buf;
-}
+}//expected-warning{{Potential leak}}
// Test what happens when the same call frees and allocated memory.
// Also tests the stack hint for parameters, when they are passed directly or via pointer.
@@ -60,7 +60,7 @@
void *test_double_action_call() {
void *buf;
my_malloc_and_free(&buf);
- return buf;
+ return buf; //expected-warning{{Use of memory after it is freed}}
}
// Test stack hint for 'reallocation failed'.
@@ -75,7 +75,7 @@
void reallocIntra() {
char *buf = (char *)malloc(100);
buf = my_realloc(buf);
- free(buf);
+ free(buf);//expected-warning{{Potential leak}}
}
// Test stack hint when returning a result.
@@ -85,7 +85,7 @@
void use_ret() {
char *v;
v = malloc_wrapper_ret();
-}
+}//expected-warning{{Potential leak}}
// Passing a block as a parameter to an inlined call for which we generate
// a stack hint message caused crashes.
@@ -99,7 +99,7 @@
int *p = malloc(sizeof(int));
myfree_takingblock(some_block, p);
- *p = 3;
+ *p = 3;//expected-warning{{Use of memory after it is freed}}
}
// Test that we refer to the last symbol used in the leak diagnostic.
@@ -112,13 +112,13 @@
m = p;
p = 0;
(*m)++;
- in++;
+ in++;//expected-warning{{Potential leak}}
}
// Tests that exercise running remove dead bindings at Call exit.
static void function_with_leak1() {
char *x = (char*)malloc(12);
-}
+} //expected-warning{{Potential leak}}
void use_function_with_leak1() {
function_with_leak1();
int y = 0;
@@ -126,7 +126,7 @@
static void function_with_leak2() {
char *x = (char*)malloc(12);
- int m = 0;
+ int m = 0; //expected-warning{{Potential leak}}
}
void use_function_with_leak2() {
function_with_leak2();
@@ -136,7 +136,7 @@
char *x = (char*)malloc(12);
if (y)
y++;
-}
+}//expected-warning{{Potential leak}}
void use_function_with_leak3(int y) {
function_with_leak3(y);
}
@@ -146,7 +146,7 @@
if (y)
y++;
else
- y--;
+ y--;//expected-warning{{Potential leak}}
}
void use_function_with_leak4(int y) {
function_with_leak4(y);
@@ -157,7 +157,7 @@
}
static int function_with_leak5() {
char *x = (char*)malloc(12);
- return anotherFunction5();
+ return anotherFunction5();//expected-warning{{Potential leak}}
}
void use_function_with_leak5() {
function_with_leak5();
@@ -168,7 +168,7 @@
}
static void function_with_leak6() {
char *x = (char*)malloc(12);
- anotherFunction6(3);
+ anotherFunction6(3);//expected-warning{{Potential leak}}
}
void use_function_with_leak6() {
function_with_leak6();
@@ -184,7 +184,7 @@
}
void use_function_with_leak7() {
function_with_leak7();
-}
+}//expected-warning{{Potential memory leak}}
// Test that we do not print the name of a variable not visible from where
// the issue is reported.
@@ -194,7 +194,7 @@
}
void testOnlyRefferToVisibleVariables() {
my_malloc();
-} // expected-warning {{Potential leak of memory}}
+} // expected-warning{{Potential memory leak}}
struct PointerWrapper{
int*p;
@@ -205,8 +205,8 @@
return w.p;
}
void testMyMalloc() {
- my_malloc_into_struct(); // expected-warning {{Potential leak of memory}}
-}
+ my_malloc_into_struct();
+} // expected-warning{{Potential memory leak}}
// CHECK: diagnostics
// CHECK-NEXT: