[PATCH] D101274: [lld-macho] Add option --error-limit=N
Greg McGary via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sun Apr 25 20:25:34 PDT 2021
gkm created this revision.
gkm added a reviewer: lld-macho.
Herald added a subscriber: dang.
Herald added a reviewer: int3.
Herald added a project: lld-macho.
gkm requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.
Add option to limit (or remove limits) on the number of errors printed before exiting. This option exists in the other lld ports: COFF & ELF.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D101274
Files:
lld/MachO/Driver.cpp
lld/MachO/Options.td
lld/test/MachO/error-limit.test
Index: lld/test/MachO/error-limit.test
===================================================================
--- /dev/null
+++ lld/test/MachO/error-limit.test
@@ -0,0 +1,28 @@
+## Check that we only see 20 (the default error-limit) "cannot open" errors
+RUN: not %lld A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 2>&1 | \
+RUN: FileCheck -check-prefix=DEFAULT %s
+
+DEFAULT: cannot open A:
+DEFAULT: cannot open T:
+DEFAULT-NOT: cannot open U:
+DEFAULT-NEXT: too many errors emitted, stopping now (use --error-limit=0 to see all errors)
+
+## Check that we only see 5 "cannot open" errors when --error-limit=5
+RUN: not %lld --error-limit=5 A B C D E F G H I J 2>&1 \
+RUN: | FileCheck -check-prefix=LIMIT5 %s
+
+LIMIT5: cannot open A:
+LIMIT5: cannot open E:
+LIMIT5-NOT: cannot open F:
+LIMIT5-NEXT: too many errors emitted, stopping now (use --error-limit=0 to see all errors)
+
+## Check that we see all "cannot open" errors when --error-limit=0 (unimited)
+RUN: not %lld --error-limit=0 A B C D E F G H I J K L M N O P Q R S T U V W 2>&1 | \
+RUN: FileCheck -check-prefix=UNLIMITED %s
+
+UNLIMITED: cannot open A:
+UNLIMITED: cannot open T:
+UNLIMITED: cannot open U:
+UNLIMITED: cannot open V:
+UNLIMITED: cannot open W:
+UNLIMITED-NOT: too many errors emitted, stopping now (use --error-limit=0 to see all errors)
Index: lld/MachO/Options.td
===================================================================
--- lld/MachO/Options.td
+++ lld/MachO/Options.td
@@ -10,6 +10,9 @@
def help_hidden : Flag<["--"], "help-hidden">,
HelpText<"Display help for hidden options">,
Group<grp_lld>;
+def error_limit_eq : Joined<["--"], "error-limit=">,
+ HelpText<"Maximum number of errors to print before exiting (default: 20)">,
+ Group<grp_lld>;
def color_diagnostics: Flag<["--"], "color-diagnostics">,
HelpText<"Alias for --color-diagnostics=always">,
Group<grp_lld>;
Index: lld/MachO/Driver.cpp
===================================================================
--- lld/MachO/Driver.cpp
+++ lld/MachO/Driver.cpp
@@ -876,6 +876,11 @@
MachOOptTable parser;
InputArgList args = parser.parse(argsArr.slice(1));
+ errorHandler().errorLimitExceededMsg =
+ "too many errors emitted, stopping now "
+ "(use --error-limit=0 to see all errors)";
+ errorHandler().errorLimit = args::getInteger(args, OPT_error_limit_eq, 20);
+
if (args.hasArg(OPT_help_hidden)) {
parser.printHelp(argsArr[0], /*showHidden=*/true);
return true;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D101274.340423.patch
Type: text/x-patch
Size: 2535 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210426/8816b0c1/attachment.bin>
More information about the llvm-commits
mailing list