The first argument to ExecuteAndWait should be the program name, but pointed
out by Markus F.X.J. Oberhumer.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21211 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/gccld/GenerateCode.cpp b/tools/gccld/GenerateCode.cpp
index a75d6f1..fa054e7 100644
--- a/tools/gccld/GenerateCode.cpp
+++ b/tools/gccld/GenerateCode.cpp
@@ -300,6 +300,7 @@
                            const sys::Path &llc) {
   // Run LLC to convert the bytecode file into assembly code.
   std::vector<const char*> args;
+  args.push_back(llc.c_str());
   args.push_back("-f");
   args.push_back("-o");
   args.push_back(OutputFilename.c_str());
@@ -313,9 +314,10 @@
 /// specified bytecode file.
 int llvm::GenerateCFile(const std::string &OutputFile,
                         const std::string &InputFile,
-                        const sys::Path &llc ) {
+                        const sys::Path &llc) {
   // Run LLC to convert the bytecode file into C.
   std::vector<const char*> args;
+  args.push_back(llc.c_str());
   args.push_back("-march=c");
   args.push_back("-f");
   args.push_back("-o");
@@ -372,6 +374,7 @@
   //  and linker because we don't know where to put the _start symbol.
   //  GCC mysteriously knows how to do it.
   std::vector<const char*> args;
+  args.push_back(gcc.c_str());
   args.push_back("-fno-strict-aliasing");
   args.push_back("-O3");
   args.push_back("-o");
diff --git a/tools/llvm-ld/llvm-ld.cpp b/tools/llvm-ld/llvm-ld.cpp
index f19c079..944f23d 100644
--- a/tools/llvm-ld/llvm-ld.cpp
+++ b/tools/llvm-ld/llvm-ld.cpp
@@ -221,10 +221,11 @@
                             const sys::Path &llc) {
   // Run LLC to convert the bytecode file into assembly code.
   std::vector<const char*> args;
-  args.push_back( "-f");
-  args.push_back( "-o");
-  args.push_back( OutputFilename.c_str() );
-  args.push_back( InputFilename.c_str() );
+  args.push_back(llc.c_str());
+  args.push_back("-f");
+  args.push_back("-o");
+  args.push_back(OutputFilename.c_str());
+  args.push_back(InputFilename.c_str());
   args.push_back(0);
 
   return sys::Program::ExecuteAndWait(llc,&args[0]);
@@ -237,11 +238,12 @@
                          const sys::Path &llc) {
   // Run LLC to convert the bytecode file into C.
   std::vector<const char*> args;
-  args.push_back( "-march=c");
-  args.push_back( "-f");
-  args.push_back( "-o");
-  args.push_back( OutputFile.c_str() );
-  args.push_back( InputFile.c_str() );
+  args.push_back(llc.c_str());
+  args.push_back("-march=c");
+  args.push_back("-f");
+  args.push_back("-o");
+  args.push_back(OutputFile.c_str());
+  args.push_back(InputFile.c_str());
   args.push_back(0);
   return sys::Program::ExecuteAndWait(llc, &args[0]);
 }
@@ -290,6 +292,7 @@
   //  and linker because we don't know where to put the _start symbol.
   //  GCC mysteriously knows how to do it.
   std::vector<const char*> args;
+  args.push_back(gcc.c_str());
   args.push_back("-fno-strict-aliasing");
   args.push_back("-O3");
   args.push_back("-o");