Implemented more boilerplate in GREngine for processing branches.  Now
we automatically generate a new successor node along an edge if the checker
did not explicitly do so (i.e., we just propagate the current state).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46536 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Analysis/GREngine.cpp b/Analysis/GREngine.cpp
index 35101a9..43ee864 100644
--- a/Analysis/GREngine.cpp
+++ b/Analysis/GREngine.cpp
@@ -296,6 +296,14 @@
   
   Succ->addPredecessor(Pred);
   
+  if (branch) GeneratedTrue = true;
+  else GeneratedFalse = true;  
+  
   if (IsNew)
     Eng.WList->Enqueue(GRWorkListUnit(Succ));
 }
+
+GRBranchNodeBuilderImpl::~GRBranchNodeBuilderImpl() {
+  if (!GeneratedTrue) generateNodeImpl(Pred->State, true);
+  if (!GeneratedFalse) generateNodeImpl(Pred->State, false);
+}