]> git.unchartedbackwaters.co.uk Git - francis/stp.git/commitdiff
Fix. If the c-interface was used to create nodes, then there would be an infinite...
authortrevor_hansen <trevor_hansen@e59a4935-1847-0410-ae03-e826735625c1>
Tue, 9 Aug 2011 05:25:34 +0000 (05:25 +0000)
committertrevor_hansen <trevor_hansen@e59a4935-1847-0410-ae03-e826735625c1>
Tue, 9 Aug 2011 05:25:34 +0000 (05:25 +0000)
Thanks to Jingyue Wu for providing this patch.

git-svn-id: https://stp-fast-prover.svn.sourceforge.net/svnroot/stp-fast-prover/trunk/stp@1382 e59a4935-1847-0410-ae03-e826735625c1

src/AST/NodeFactory/SimplifyingNodeFactory.cpp

index faa0c7f57af69f2a196c5b467be7f9b8a068cd15..cb47cf0a11f8c4477e6251fd804c2cfc3d3a1370 100644 (file)
@@ -846,9 +846,9 @@ ASTNode SimplifyingNodeFactory::CreateTerm(Kind kind, unsigned int width,
                         result = NodeFactory::CreateTerm(BEEV::ITE, width, children[0], children[1][1], children[2]);
                 else if (children[0].GetKind() == BEEV::NOT)
                         result = NodeFactory::CreateTerm(BEEV::ITE, width, children[0][0], children[2], children[1]);
-                else if (children[0].GetKind() ==BEEV::EQ && children[0][1] == children[1] && children[0][0].GetKind() == BEEV::BVCONST)
+                else if (children[0].GetKind() ==BEEV::EQ && children[0][1] == children[1] && children[0][0].GetKind() == BEEV::BVCONST && children[0][1].GetKind() != BEEV::BVCONST)
                         result = NodeFactory::CreateTerm(BEEV::ITE, width, children[0], children[0][0], children[2]);
-                else if (children[0].GetKind() == BEEV::EQ && children[0][0] == children[1] && children[0][1].GetKind() == BEEV::BVCONST)
+                else if (children[0].GetKind() == BEEV::EQ && children[0][0] == children[1] && children[0][1].GetKind() == BEEV::BVCONST && children[0][0].GetKind() != BEEV::BVCONST)
                         result = NodeFactory::CreateTerm(BEEV::ITE, width, children[0], children[0][1], children[2]);
                break;
        }