From: Anna Zaks Date: Thu, 6 Jun 2013 22:32:11 +0000 (+0000) Subject: [analyzer] Address Jordan’s code review for r183451 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=57c8736e7dce5e63b4e1665d2c4fcf6e6ef959d0;p=clang [analyzer] Address Jordan’s code review for r183451 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@183455 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/StaticAnalyzer/Core/BugReporter.cpp b/lib/StaticAnalyzer/Core/BugReporter.cpp index e3f43854d6..e93bb3fce5 100644 --- a/lib/StaticAnalyzer/Core/BugReporter.cpp +++ b/lib/StaticAnalyzer/Core/BugReporter.cpp @@ -248,7 +248,7 @@ static void adjustCallLocations(PathPieces &Pieces, /// We might have pieces with invalid locations as a result of inlining Body /// Farm generated functions. static void removePiecesWithInvalidLocations(PathPieces &Pieces) { - for (PathPieces::iterator I = Pieces.begin(), E = Pieces.end(); I != E; ++I) { + for (PathPieces::iterator I = Pieces.begin(), E = Pieces.end(); I != E;) { if (PathDiagnosticCallPiece *C = dyn_cast(*I)) removePiecesWithInvalidLocations(C->path); @@ -257,10 +257,10 @@ static void removePiecesWithInvalidLocations(PathPieces &Pieces) { if (!(*I)->getLocation().isValid() || !(*I)->getLocation().asLocation().isValid()) { - Pieces.erase(I); + I = Pieces.erase(I); continue; } - + I++; } } diff --git a/test/Analysis/unix-fns.c b/test/Analysis/unix-fns.c index ecd2421d5d..dad03fac70 100644 --- a/test/Analysis/unix-fns.c +++ b/test/Analysis/unix-fns.c @@ -1,6 +1,8 @@ // 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 -analyzer-config path-diagnostics-alternate=false -fblocks -verify -o %t.plist // RUN: FileCheck --input-file=%t.plist %s -// RUN: %clang_cc1 -analyze -analyzer-checker=core,unix.API,osx.API -analyzer-output=html -analyzer-config faux-bodies=true -fblocks -o %T/dir %s +// RUN: mkdir -p %t.dir +// RUN: %clang_cc1 -analyze -analyzer-checker=core,unix.API,osx.API -analyzer-output=html -analyzer-config faux-bodies=true -fblocks -o %t.dir %s +// RUN: rm -fR %t.dir struct _opaque_pthread_once_t { long __sig; char __opaque[8]; @@ -16,7 +18,6 @@ void *realloc(void *, size_t); void *reallocf(void *, size_t); void *alloca(size_t); void *valloc(size_t); - typedef union { struct _os_object_s *_os_obj; struct dispatch_object_s *_do; @@ -32,7 +33,6 @@ typedef union { struct dispatch_operation_s *_doperation; struct dispatch_disk_s *_ddisk; } dispatch_object_t __attribute__((__transparent_union__)); - typedef void (^dispatch_block_t)(void); typedef long dispatch_once_t; typedef struct dispatch_queue_s *dispatch_queue_t;