From: Anton Yartsev Date: Fri, 5 Apr 2013 00:37:32 +0000 (+0000) Subject: [analyzer] Updated the testcase. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6e22712b73ce5f0361355c9f2d0fa81b56722cd8;p=clang [analyzer] Updated the testcase. 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 --- diff --git a/test/Analysis/NewDelete-intersections.mm b/test/Analysis/NewDelete-intersections.mm index ca588f5c05..3a87e4f3f1 100644 --- a/test/Analysis/NewDelete-intersections.mm +++ b/test/Analysis/NewDelete-intersections.mm @@ -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;