Remove Decl and CFG from ExplodedGraph. This leads to a series small changes.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79973 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Analysis/BugReporter.cpp b/lib/Analysis/BugReporter.cpp
index 1a77ecb..bda31fa 100644
--- a/lib/Analysis/BugReporter.cpp
+++ b/lib/Analysis/BugReporter.cpp
@@ -1373,8 +1373,7 @@
 
   // Create a new (third!) graph with a single path.  This is the graph
   // that will be returned to the caller.
-  ExplodedGraph *GNew = new ExplodedGraph(GTrim->getCFG(), GTrim->getCodeDecl(),
-                                          GTrim->getContext());
+  ExplodedGraph *GNew = new ExplodedGraph(GTrim->getContext());
   
   // Sometimes the trimmed graph can contain a cycle.  Perform a reverse BFS
   // to the root node, and then construct a new graph that contains only
diff --git a/lib/Analysis/CFRefCount.cpp b/lib/Analysis/CFRefCount.cpp
index d1f293e..6d678f1 100644
--- a/lib/Analysis/CFRefCount.cpp
+++ b/lib/Analysis/CFRefCount.cpp
@@ -3025,7 +3025,7 @@
 
     // Special-case: are we sending a mesage to "self"?
     //  This is a hack.  When we have full-IP this should be removed.
-    if (isa<ObjCMethodDecl>(&Eng.getGraph().getCodeDecl())) {      
+    if (isa<ObjCMethodDecl>(Pred->getLocationContext()->getDecl())) {      
       if (Expr* Receiver = ME->getReceiver()) {
         SVal X = St->getSValAsScalarOrLoc(Receiver);
         if (loc::MemRegionVal* L = dyn_cast<loc::MemRegionVal>(&X)) {          
diff --git a/lib/Analysis/GRCoreEngine.cpp b/lib/Analysis/GRCoreEngine.cpp
index 3ff27fc..7983dd8 100644
--- a/lib/Analysis/GRCoreEngine.cpp
+++ b/lib/Analysis/GRCoreEngine.cpp
@@ -151,7 +151,7 @@
   if (G->num_roots() == 0) { // Initialize the analysis by constructing
     // the root if none exists.
     
-    CFGBlock* Entry = &getCFG().getEntry();
+    CFGBlock* Entry = &(L->getCFG()->getEntry());
     
     assert (Entry->empty() && 
             "Entry block must be empty.");
@@ -214,9 +214,9 @@
   CFGBlock* Blk = L.getDst();
   
   // Check if we are entering the EXIT block. 
-  if (Blk == &getCFG().getExit()) {
+  if (Blk == &(Pred->getLocationContext()->getCFG()->getExit())) {
     
-    assert (getCFG().getExit().size() == 0 
+    assert (Pred->getLocationContext()->getCFG()->getExit().size() == 0 
             && "EXIT block cannot contain Stmts.");
 
     // Process the final state transition.
diff --git a/lib/Analysis/GRExprEngine.cpp b/lib/Analysis/GRExprEngine.cpp
index ace75cb..17baca7 100644
--- a/lib/Analysis/GRExprEngine.cpp
+++ b/lib/Analysis/GRExprEngine.cpp
@@ -153,7 +153,7 @@
                            StoreManagerCreator SMC,
                            ConstraintManagerCreator CMC)
   : AMgr(mgr),
-    CoreEngine(cfg, CD, Ctx, *this), 
+    CoreEngine(Ctx, *this), 
     G(CoreEngine.getGraph()),
     Liveness(L),
     Builder(NULL),
@@ -316,7 +316,7 @@
   //  this check when we KNOW that there is no block-level subexpression.
   //  The motivation is that this check requires a hashtable lookup.
   
-  if (S != CurrentStmt && getCFG().isBlkExpr(S)) {
+  if (S != CurrentStmt && Pred->getLocationContext()->getCFG()->isBlkExpr(S)) {
     Dst.Add(Pred);
     return;
   }
@@ -494,7 +494,7 @@
   
   Ex = Ex->IgnoreParens();
   
-  if (Ex != CurrentStmt && getCFG().isBlkExpr(Ex)) {
+  if (Ex != CurrentStmt && Pred->getLocationContext()->getCFG()->isBlkExpr(Ex)) {
     Dst.Add(Pred);
     return;
   }
@@ -807,7 +807,7 @@
 void GRExprEngine::VisitGuardedExpr(Expr* Ex, Expr* L, Expr* R,
                                     ExplodedNode* Pred, ExplodedNodeSet& Dst) {
   
-  assert (Ex == CurrentStmt && getCFG().isBlkExpr(Ex));
+  assert (Ex == CurrentStmt && Pred->getLocationContext()->getCFG()->isBlkExpr(Ex));
   
   const GRState* state = GetState(Pred);
   SVal X = state->getBlkExprSVal(Ex);
@@ -917,7 +917,7 @@
   assert(B->getOpcode() == BinaryOperator::LAnd ||
          B->getOpcode() == BinaryOperator::LOr);
   
-  assert(B == CurrentStmt && getCFG().isBlkExpr(B));
+  assert(B == CurrentStmt && Pred->getLocationContext()->getCFG()->isBlkExpr(B));
   
   const GRState* state = GetState(Pred);
   SVal X = state->getBlkExprSVal(B);