[PATCH] D13093: [ELF2] - output of all unknown arguments instead of only one

George Rimar via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 23 03:46:34 PDT 2015


grimar created this revision.
grimar added a reviewer: rafael.
grimar added subscribers: grimar, llvm-commits.
grimar added a project: lld.

I suggest to report all unknown arguments before exit(1), that is helpful for debugging.

http://reviews.llvm.org/D13093

Files:
  DriverUtils.cpp
  Error.cpp
  Error.h

Index: Error.h
===================================================================
--- Error.h
+++ Error.h
@@ -15,6 +15,8 @@
 namespace lld {
 namespace elf2 {
 
+void warning(const Twine &Msg);
+
 LLVM_ATTRIBUTE_NORETURN void error(const Twine &Msg);
 void error(std::error_code EC, const Twine &Prefix);
 void error(std::error_code EC);
Index: Error.cpp
===================================================================
--- Error.cpp
+++ Error.cpp
@@ -15,6 +15,10 @@
 namespace lld {
 namespace elf2 {
 
+void warning(const Twine &Msg) {
+  llvm::errs() << Msg << "\n";
+}
+
 void error(const Twine &Msg) {
   llvm::errs() << Msg << "\n";
   exit(1);
Index: DriverUtils.cpp
===================================================================
--- DriverUtils.cpp
+++ DriverUtils.cpp
@@ -58,7 +58,12 @@
     error(Twine("missing arg value for \"") + Args.getArgString(MissingIndex) +
           "\", expected " + Twine(MissingCount) +
           (MissingCount == 1 ? " argument.\n" : " arguments"));
-  for (auto *Arg : Args.filtered(OPT_UNKNOWN))
-    error(Twine("unknown argument: ") + Arg->getSpelling());
+
+  auto unknowns = Args.filtered(OPT_UNKNOWN);
+  for (llvm::opt::arg_iterator Arg = unknowns.begin(), End = unknowns.end(); Arg != End; ++Arg)
+    warning(Twine("warning: unknown argument: ") + (*Arg)->getSpelling());
+  if (unknowns.begin() != unknowns.end())
+    error(Twine("unknown argument(s) found"));
+
   return Args;
 }


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D13093.35477.patch
Type: text/x-patch
Size: 1478 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150923/165124af/attachment.bin>


More information about the llvm-commits mailing list