Fix --enable-valgrind. Add room for the new arguments, and don't keep
authorNick Lewycky <nicholas@mxc.ca>
Thu, 14 Sep 2006 04:20:17 +0000 (04:20 +0000)
committerNick Lewycky <nicholas@mxc.ca>
Thu, 14 Sep 2006 04:20:17 +0000 (04:20 +0000)
a pointer to a temporary.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30312 91177308-0d34-0410-b5e6-96231b3b80d8

tools/bugpoint/OptimizerDriver.cpp

index 8087ddb26a7410464b92c318e6f4a7804775b8b5..dddf7ceb6123ebb6970c6f994d293bcdc0b6bd87 100644 (file)
@@ -158,13 +158,14 @@ bool BugDriver::runPasses(const std::vector<const PassInfo*> &Passes,
   // setup the child process' arguments
   const char** args = (const char**)
     alloca(sizeof(const char*) * 
-          (Passes.size()+10+2*PluginLoader::getNumPlugins()));
+          (Passes.size()+13+2*PluginLoader::getNumPlugins()));
   int n = 0;
+  sys::Path tool = sys::Program::FindProgramByName(ToolName);
   if (UseValgrind) {
     args[n++] = "valgrind";
     args[n++] = "--error-exitcode=1";
     args[n++] = "-q";
-    args[n++] = sys::Program::FindProgramByName(ToolName).c_str();
+    args[n++] = tool.c_str();
   } else
     args[n++] = ToolName.c_str();
 
@@ -189,7 +190,7 @@ bool BugDriver::runPasses(const std::vector<const PassInfo*> &Passes,
   if (UseValgrind)
     prog = sys::Program::FindProgramByName("valgrind");
   else
-    prog = sys::Program::FindProgramByName(ToolName);
+    prog = tool;
   int result = sys::Program::ExecuteAndWait(prog,args,0,0,Timeout,&ErrMsg);
 
   // If we are supposed to delete the bytecode file or if the passes crashed,