]> granicus.if.org Git - clang/commitdiff
Driver: Ignore empty arguments.
authorDaniel Dunbar <daniel@zuster.org>
Fri, 13 Mar 2009 01:01:44 +0000 (01:01 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Fri, 13 Mar 2009 01:01:44 +0000 (01:01 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66858 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Driver/Driver.cpp

index c8750f7449bd57da002d21641b038f8df231cf32..4fc03ce76593d57c0086ff82f22c61221efa2d2b 100644 (file)
@@ -45,6 +45,16 @@ ArgList *Driver::ParseArgStrings(const char **ArgBegin, const char **ArgEnd) {
   
   unsigned Index = 0, End = ArgEnd - ArgBegin;
   while (Index < End) {
+    // gcc's handling of empty arguments doesn't make
+    // sense, but this is not a common use case. :)
+    //
+    // We just ignore them here (note that other things may
+    // still take them as arguments).
+    if (Args->getArgString(Index)[0] == '\0') {
+      ++Index;
+      continue;
+    }
+
     unsigned Prev = Index;
     Arg *A = getOpts().ParseOneArg(*Args, Index, End);
     if (A) {
@@ -209,7 +219,7 @@ bool Driver::HandleImmediateArgs(const ArgList &Args) {
     return false;
   }
 
-  if (Arg *A = Args.getLastArg(options::OPT_print_libgcc_file_name)) {
+  if (Args.hasArg(options::OPT_print_libgcc_file_name)) {
     llvm::outs() << GetProgramPath("libgcc.a").toString() << "\n";
     return false;
   }