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);