From 9c7f1f613ab7a41fb0755e9aa923f98a07f955d6 Mon Sep 17 00:00:00 2001 From: Hamed Date: Sun, 3 Sep 2017 23:29:12 -0700 Subject: [PATCH] fixing a bug with bypassMustBeTrueNode --- src/ASTAnalyses/orderanalysis.cc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/ASTAnalyses/orderanalysis.cc b/src/ASTAnalyses/orderanalysis.cc index 196561c..a77a1a8 100644 --- a/src/ASTAnalyses/orderanalysis.cc +++ b/src/ASTAnalyses/orderanalysis.cc @@ -114,11 +114,18 @@ void bypassMustBeTrueNode(CSolver *This, OrderGraph *graph, OrderNode *node) { OrderNode *sinkNode = outEdge->sink; sinkNode->inEdges.remove(outEdge); //Adding new edge to new sink and src nodes ... + if(srcNode == sinkNode){ + This->setUnSAT(); + delete iterout; + delete iterin; + return; + } OrderEdge *newEdge = graph->getOrderEdgeFromOrderGraph(srcNode, sinkNode); newEdge->mustPos = true; newEdge->polPos = true; - if (newEdge->mustNeg) + if (newEdge->mustNeg){ This->setUnSAT(); + } srcNode->outEdges.add(newEdge); sinkNode->inEdges.add(newEdge); } -- 2.34.1