Add support for programs with a null argv[0]
authorChris Lattner <sabre@nondot.org>
Tue, 17 Jan 2006 00:32:28 +0000 (00:32 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 17 Jan 2006 00:32:28 +0000 (00:32 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25379 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Support/CommandLine.cpp
lib/Support/ToolRunner.cpp
tools/bugpoint/ToolRunner.cpp

index 6aa6c091292c9c8e28c4ff27c334bbd29a4168d2..1644308077a26bf6f8b663199f5f60c9ea7b147e 100644 (file)
@@ -448,8 +448,11 @@ void cl::ParseCommandLineOptions(int &argc, char **argv,
     }
 
     if (Handler == 0) {
-      std::cerr << ProgramName << ": Unknown command line argument '" << argv[i]
-                << "'.  Try: '" << argv[0] << " --help'\n";
+      if (ProgramName)
+        std::cerr << ProgramName << ": Unknown command line argument '"
+                  << argv[i] << "'.  Try: '" << argv[0] << " --help'\n";
+      else
+        std::cerr << "Unknown command line argument '" << argv[i] << "'.\n";
       ErrorParsing = true;
       continue;
     }
@@ -485,17 +488,28 @@ void cl::ParseCommandLineOptions(int &argc, char **argv,
 
   // Check and handle positional arguments now...
   if (NumPositionalRequired > PositionalVals.size()) {
-    std::cerr << ProgramName
-              << ": Not enough positional command line arguments specified!\n"
-              << "Must specify at least " << NumPositionalRequired
-              << " positional arguments: See: " << argv[0] << " --help\n";
+    if (ProgramName)
+      std::cerr << ProgramName
+                << ": Not enough positional command line arguments specified!\n"
+                << "Must specify at least " << NumPositionalRequired
+                << " positional arguments: See: " << argv[0] << " --help\n";
+    else
+      std::cerr << "Not enough positional command line arguments specified!\n"
+                << "Must specify at least " << NumPositionalRequired
+                << " positional arguments.";
+    
     ErrorParsing = true;
   } else if (!HasUnlimitedPositionals
              && PositionalVals.size() > PositionalOpts.size()) {
-    std::cerr << ProgramName
-              << ": Too many positional arguments specified!\n"
-              << "Can specify at most " << PositionalOpts.size()
-              << " positional arguments: See: " << argv[0] << " --help\n";
+    if (ProgramName)
+      std::cerr << ProgramName
+                << ": Too many positional arguments specified!\n"
+                << "Can specify at most " << PositionalOpts.size()
+                << " positional arguments: See: " << argv[0] << " --help\n";
+    else
+      std::cerr << "Too many positional arguments specified!\n"
+                << "Can specify at most " << PositionalOpts.size()
+                << " positional arguments.\n";
     ErrorParsing = true;
 
   } else if (ConsumeAfterOpt == 0) {
index 6480c23cd8e9011bc0de4b8527a1be241c55d281..5eb763a88ac0672a254055814706f47600b5be62 100644 (file)
@@ -394,7 +394,15 @@ int GCC::ExecuteProgram(const std::string &ProgramFile,
   sys::Path OutputBinary (ProgramFile+".gcc.exe");
   OutputBinary.makeUnique();
   GCCArgs.push_back(OutputBinary.c_str()); // Output to the right file...
+  GCCArgs.push_back("-lz");
   GCCArgs.push_back("-lm");                // Hard-code the math library...
+  GCCArgs.push_back("-x");
+  GCCArgs.push_back("none");
+  GCCArgs.push_back("/usr/local/lib/NAGWare/quickfit.o");
+  GCCArgs.push_back("-Xlinker");
+  GCCArgs.push_back("-flat_namespace");
+  GCCArgs.push_back("/usr/local/lib/NAGWare/libf97.dylib");
+  GCCArgs.push_back("/usr/local/lib/NAGWare/libf96.a");
   GCCArgs.push_back("-O2");                // Optimize the program a bit...
 #if defined (HAVE_LINK_R)
   GCCArgs.push_back("-Wl,-R.");            // Search this dir for .so files
index 6480c23cd8e9011bc0de4b8527a1be241c55d281..5eb763a88ac0672a254055814706f47600b5be62 100644 (file)
@@ -394,7 +394,15 @@ int GCC::ExecuteProgram(const std::string &ProgramFile,
   sys::Path OutputBinary (ProgramFile+".gcc.exe");
   OutputBinary.makeUnique();
   GCCArgs.push_back(OutputBinary.c_str()); // Output to the right file...
+  GCCArgs.push_back("-lz");
   GCCArgs.push_back("-lm");                // Hard-code the math library...
+  GCCArgs.push_back("-x");
+  GCCArgs.push_back("none");
+  GCCArgs.push_back("/usr/local/lib/NAGWare/quickfit.o");
+  GCCArgs.push_back("-Xlinker");
+  GCCArgs.push_back("-flat_namespace");
+  GCCArgs.push_back("/usr/local/lib/NAGWare/libf97.dylib");
+  GCCArgs.push_back("/usr/local/lib/NAGWare/libf96.a");
   GCCArgs.push_back("-O2");                // Optimize the program a bit...
 #if defined (HAVE_LINK_R)
   GCCArgs.push_back("-Wl,-R.");            // Search this dir for .so files