[analyzer] Fix a bug in unexplored_first_location_queue iteration order.
authorGeorge Karpenkov <ekarpenkov@apple.com>
Fri, 12 Oct 2018 00:52:13 +0000 (00:52 +0000)
committerGeorge Karpenkov <ekarpenkov@apple.com>
Fri, 12 Oct 2018 00:52:13 +0000 (00:52 +0000)
Pointed out by Artem in post-commit review for https://reviews.llvm.org/D53058

llvm-svn: 344322

clang/lib/StaticAnalyzer/Core/WorkList.cpp

index 9eb3ee8..e25f94f 100644 (file)
@@ -255,7 +255,7 @@ std::unique_ptr<WorkList> WorkList::makeUnexploredFirstPriorityQueue() {
 
 namespace {
 class UnexploredFirstPriorityLocationQueue : public WorkList {
-  using LocIdentifier = int;
+  using LocIdentifier = const CFGBlock *;
 
   // How many times each location was visited.
   // Is signed because we negate it later in order to have a reversed
@@ -294,7 +294,7 @@ public:
     const ExplodedNode *N = U.getNode();
     unsigned NumVisited = 0;
     if (auto BE = N->getLocation().getAs<BlockEntrance>())
-      NumVisited = NumReached[BE->getBlock()->getBlockID()]++;
+      NumVisited = NumReached[BE->getBlock()]++;
 
     queue.push(std::make_pair(U, std::make_pair(-NumVisited, ++Counter)));
   }