Potential fix for bug 573.
authorMorgan Deters <mdeters@cs.nyu.edu>
Thu, 26 Jun 2014 04:47:55 +0000 (00:47 -0400)
committerMorgan Deters <mdeters@cs.nyu.edu>
Thu, 26 Jun 2014 04:50:14 +0000 (00:50 -0400)
src/main/command_executor.cpp
src/main/driver_unified.cpp

index 5dc10a4739a8ef088d24ce943e6276e3ebbcd95a..028a23f01f8b8b07e4aabea1738fb18d563dbda9 100644 (file)
@@ -69,7 +69,7 @@ bool CommandExecutor::doCommand(Command* cmd)
     bool status = true;
 
     for(CommandSequence::iterator subcmd = seq->begin();
-        status && subcmd != seq->end();
+        (status || d_options[options::continuedExecution]) && subcmd != seq->end();
         ++subcmd) {
       status = doCommand(*subcmd);
     }
index 64e10cc531f8a0736eae71199396bac06aaf7623..6beb9636a558665590dcf7643d5d02c8f987bc6c 100644 (file)
@@ -338,7 +338,7 @@ int runCvc4(int argc, char* argv[], Options& opts) {
         replayParser->useDeclarationsFrom(parser);
       }
       bool needReset = false;
-      while(status && (cmd = parser->nextCommand())) {
+      while((status || opts[options::continuedExecution]) && (cmd = parser->nextCommand())) {
         if(dynamic_cast<PushCommand*>(cmd) != NULL) {
           if(needReset) {
             pExecutor->reset();
@@ -417,7 +417,7 @@ int runCvc4(int argc, char* argv[], Options& opts) {
         // have the replay parser use the file's declarations
         replayParser->useDeclarationsFrom(parser);
       }
-      while(status && (cmd = parser->nextCommand())) {
+      while((status || opts[options::continuedExecution]) && (cmd = parser->nextCommand())) {
         status = pExecutor->doCommand(cmd);
         if(dynamic_cast<QuitCommand*>(cmd) != NULL) {
           delete cmd;