Fix Loop Exit Bug
[satcheck.git] / mcexecution.cc
index 1166731c1b6758a88f3c0e5b680dbb147e6d32ed..404569a1ff92e927098d2b0830d80a44f6f71025 100644 (file)
@@ -895,6 +895,9 @@ void MCExecution::exitLoop() {
        if (!currexecpoint->directInLoop()) {
                breakstate=getOrCreateCurrRecord(NONLOCALTRANS, NULL, 0, 0, 8, false);
                currexecpoint->incrementTop();
+       } else {
+               breakstate=getOrCreateCurrRecord(LOOPEXIT, NULL, 0, 0, 8, false);
+               currexecpoint->incrementTop();
        }
        
        /* Get Last Record */
@@ -927,9 +930,7 @@ void MCExecution::exitLoop() {
        if (loopenter->getNextRecord()==NULL) {
                loopenter->setNextRecord(labelrec);
        }
-       if (breakstate!=NULL) {
-               breakstate->setNextRecord(labelrec);
-       }
+       breakstate->setNextRecord(labelrec);
        currexecpoint->incrementTop();
 }