about summary refs log tree commit diff homepage
path: root/tools/kleaver
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-06-05 08:11:30 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-06-05 08:11:30 +0000
commit6c3de732d53bc0953078f1f102ba824161f39cd0 (patch)
treedb2bfdda80c84b5dc0578926e2c9d061fe3692d2 /tools/kleaver
parentd5102295ea7f5780119108f0b8cf118ad7c04311 (diff)
downloadklee-6c3de732d53bc0953078f1f102ba824161f39cd0.tar.gz
Don't evaluate queries if there were parse failures.
git-svn-id: https://llvm.org/svn/llvm-project/klee/trunk@72934 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/kleaver')
-rw-r--r--tools/kleaver/main.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/tools/kleaver/main.cpp b/tools/kleaver/main.cpp
index 7c437e47..7525eb7a 100644
--- a/tools/kleaver/main.cpp
+++ b/tools/kleaver/main.cpp
@@ -109,9 +109,16 @@ static bool EvaluateInputAST(const char *Filename,
     llvm::cerr << Filename << ": parse failure: "
                << N << " errors.\n";
     success = false;
-  }
+  }  
   delete P;
 
+  if (!success) {
+    for (std::vector<Decl*>::iterator it = Decls.begin(),
+           ie = Decls.end(); it != ie; ++it)
+      delete *it;
+    return success;
+  }
+
   // FIXME: Support choice of solver.
   Solver *S, *STP = new STPSolver(true);
   S = createCexCachingSolver(STP);
@@ -156,7 +163,7 @@ int main(int argc, char **argv) {
   std::string ErrorStr;
   MemoryBuffer *MB = MemoryBuffer::getFileOrSTDIN(InputFile.c_str(), &ErrorStr);
   if (!MB) {
-    llvm::cerr << argv[0] << ": ERROR: " << ErrorStr << "\n";
+    llvm::cerr << argv[0] << ": error: " << ErrorStr << "\n";
     return 1;
   }
 
@@ -172,7 +179,7 @@ int main(int argc, char **argv) {
                                MB);
     break;
   default:
-    llvm::cerr << argv[0] << ": ERROR: Unknown program action!\n";
+    llvm::cerr << argv[0] << ": error: Unknown program action!\n";
   }
 
   delete MB;