Simplify GRIndirectGotoNodeBuilder.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47068 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Analysis/GRConstants.cpp b/Analysis/GRConstants.cpp
index c239551..dad8b08 100644
--- a/Analysis/GRConstants.cpp
+++ b/Analysis/GRConstants.cpp
@@ -449,10 +449,8 @@
     LabelStmt* L = cast<lval::GotoLabel>(V).getLabel();
     
     for (iterator I=builder.begin(), E=builder.end(); I != E; ++I) {
-      IndirectGotoNodeBuilder::Destination D = *I;
-      
-      if (D.getLabel() == L) {
-        builder.generateNode(D, St);
+      if (I.getLabel() == L) {
+        builder.generateNode(I, St);
         return;
       }
     }
@@ -463,7 +461,7 @@
 
   if (isa<lval::ConcreteInt>(V) || isa<UninitializedVal>(V)) {
     // Dispatch to the first target and mark it as a sink.
-    NodeTy* N = builder.generateNode(*builder.begin(), St, true);
+    NodeTy* N = builder.generateNode(builder.begin(), St, true);
     UninitBranches.insert(N);
     return;
   }
@@ -473,7 +471,7 @@
   assert (isa<UnknownVal>(V));
   
   for (iterator I=builder.begin(), E=builder.end(); I != E; ++I)
-    builder.generateNode(*I, St);
+    builder.generateNode(I, St);
 }
 
 void GRConstants::VisitLogicalExpr(BinaryOperator* B, NodeTy* Pred,
diff --git a/Analysis/GREngine.cpp b/Analysis/GREngine.cpp
index 3d46fa3..a15bcb5 100644
--- a/Analysis/GREngine.cpp
+++ b/Analysis/GREngine.cpp
@@ -361,32 +361,15 @@
     if (!(*I)->isSink()) Eng.WList->Enqueue(*I);
 }
 
-GRIndirectGotoNodeBuilderImpl::Destination
-GRIndirectGotoNodeBuilderImpl::Iterator::operator*() {
-  CFGBlock* B = *I;
-  assert (!B->empty());      
-  LabelStmt* L = cast<LabelStmt>(B->getLabel());
-  return Destination(L, *I);
-}
-
-GRIndirectGotoNodeBuilderImpl::Iterator
-GRIndirectGotoNodeBuilderImpl::begin() {
-  return Iterator(DispatchBlock.succ_begin());
-}
-
-GRIndirectGotoNodeBuilderImpl::Iterator
-GRIndirectGotoNodeBuilderImpl::end() {
-  return Iterator(DispatchBlock.succ_end());
-}
 
 ExplodedNodeImpl*
-GRIndirectGotoNodeBuilderImpl::generateNodeImpl(const Destination& D,
+GRIndirectGotoNodeBuilderImpl::generateNodeImpl(const Iterator& I,
                                                 void* St,
                                                 bool isSink) {
   bool IsNew;
   
   ExplodedNodeImpl* Succ =
-    Eng.G->getNodeImpl(BlockEdge(Eng.getCFG(), Src, D.getBlock(), true),
+    Eng.G->getNodeImpl(BlockEdge(Eng.getCFG(), Src, I.getBlock(), true),
                        St, &IsNew);
               
   Succ->addPredecessor(Pred);