Fix error handling in Options::Parse
authorTatyana Krasnukha <tatyana@synopsys.com>
Tue, 26 Feb 2019 14:50:40 +0000 (14:50 +0000)
committerTatyana Krasnukha <tatyana@synopsys.com>
Tue, 26 Feb 2019 14:50:40 +0000 (14:50 +0000)
Moved `if (error.Fail())` to correct place to catch all faulty cases such as
"unknown or ambiguous option" which was ignored before.

llvm-svn: 354883

lldb/source/Interpreter/Options.cpp

index 87e09e5..a6c0b49 100644 (file)
@@ -1436,10 +1436,11 @@ llvm::Expected<Args> Options::Parse(const Args &args,
     } else {
       error.SetErrorStringWithFormat("invalid option with value '%i'", val);
     }
-    if (error.Fail())
-      return error.ToError();
   }
 
+  if (error.Fail())
+    return error.ToError();
+
   argv.erase(argv.begin(), argv.begin() + OptionParser::GetOptionIndex());
   return ReconstituteArgsAfterParsing(argv, args);
 }