]> granicus.if.org Git - clang/commitdiff
[analyzer] Address Jordan’s code review for r183451
authorAnna Zaks <ganna@apple.com>
Thu, 6 Jun 2013 22:32:11 +0000 (22:32 +0000)
committerAnna Zaks <ganna@apple.com>
Thu, 6 Jun 2013 22:32:11 +0000 (22:32 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@183455 91177308-0d34-0410-b5e6-96231b3b80d8

lib/StaticAnalyzer/Core/BugReporter.cpp
test/Analysis/unix-fns.c

index e3f43854d635d53cf3162784d2b9141d37337ce4..e93bb3fce5e4b1ae7bc88e291bfc12c015b49baf 100644 (file)
@@ -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<PathDiagnosticCallPiece>(*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++;
   }
 }
 
index ecd2421d5da4020df639245f50d0528476032b0e..dad03fac70b8a0ce62da41ceeee9dcca083c1a94 100644 (file)
@@ -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;