]> granicus.if.org Git - clang/commitdiff
[analyzer] Updated the testcase.
authorAnton Yartsev <anton.yartsev@gmail.com>
Fri, 5 Apr 2013 00:37:32 +0000 (00:37 +0000)
committerAnton Yartsev <anton.yartsev@gmail.com>
Fri, 5 Apr 2013 00:37:32 +0000 (00:37 +0000)
Missed check added to testMallocFreeNoWarn().
Removed FIXMEs as the current behaviour is considered acceptable now.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178824 91177308-0d34-0410-b5e6-96231b3b80d8

test/Analysis/NewDelete-intersections.mm

index ca588f5c05a9c70f210b2da8fb3122583a84cde3..3a87e4f3f111cdcd42e299a9a2e72cd213b443b2 100644 (file)
@@ -11,7 +11,7 @@ extern "C" void free(void *);
 // checkers bounded with cplusplus.NewDelete.
 //----------------------------------------------------------------------------
 
-// malloc()/free() are subjects of unix.Malloc and unix.MallocWithAnnotations
+//----- malloc()/free() are subjects of unix.Malloc and unix.MallocWithAnnotations
 void testMallocFreeNoWarn() {
   int i;
   free(&i); // no warn
@@ -24,6 +24,10 @@ void testMallocFreeNoWarn() {
   free(p2); // no warn
 
   int *p3 = (int *)malloc(sizeof(int)); // no warn
+
+  int *p4 = (int *)malloc(sizeof(int));
+  free(p4);
+  int j = *p4; // no warn
 }
 
 void testDeleteMalloced() {
@@ -36,19 +40,16 @@ void testFreeOpNew() {
   void *p = operator new(0);
   free(p);
 } // expected-warning{{Memory is never released; potential leak}}
-// FIXME: Pointer should escape
 
 void testFreeNewExpr() {
   int *p = new int;
   free(p);
 } // expected-warning{{Memory is never released; potential leak}}
-// FIXME: Pointer should escape
 
 void testObjcFreeNewed() {
   int *p = new int;
   NSData *nsdata = [NSData dataWithBytesNoCopy:p length:sizeof(int) freeWhenDone:1]; // expected-warning{{Memory is never released; potential leak}}
 }
-// FIXME: Pointer should escape
 
 void testFreeAfterDelete() {
   int *p = new int;