handleColorDiagnostics(args);
- for (auto *arg : args.filtered(OPT_UNKNOWN)) {
+ for (opt::Arg *arg : args.filtered(OPT_UNKNOWN)) {
std::string nearest;
if (optTable.findNearest(arg->getAsString(args), nearest) > 1)
warn("ignoring unknown argument '" + arg->getAsString(args) + "'");
if (missingCount)
error(Twine(args.getArgString(missingIndex)) + ": missing argument");
- for (auto *arg : args.filtered(OPT_UNKNOWN)) {
+ for (opt::Arg *arg : args.filtered(OPT_UNKNOWN)) {
std::string nearest;
if (findNearest(arg->getAsString(args), nearest) > 1)
error("unknown argument '" + arg->getAsString(args) + "'");
handleColorDiagnostics(args);
- for (opt::Arg *arg : args.filtered(OPT_UNKNOWN))
- error("unknown argument: " + arg->getSpelling());
+ for (opt::Arg *arg : args.filtered(OPT_UNKNOWN)) {
+ std::string nearest;
+ if (findNearest(arg->getAsString(args), nearest) > 1)
+ error("unknown argument '" + arg->getAsString(args) + "'");
+ else
+ error("unknown argument '" + arg->getAsString(args) +
+ "', did you mean '" + nearest + "'");
+ }
return args;
}
# RUN: not %lld -xyz --color-diagnostics=always /nosuchfile 2>&1 \
# RUN: | FileCheck -check-prefix=COLOR %s
-# COLOR: {{lld: .\[0;31merror: .\[0munknown argument: -xyz}}
+# COLOR: {{lld: .\[0;31merror: .\[0munknown argument '-xyz'}}
# COLOR: {{lld: .\[0;31merror: .\[0mcannot open /nosuchfile}}
# RUN: not %lld --color-diagnostics=foobar 2>&1 | FileCheck -check-prefix=ERR %s
--- /dev/null
+# RUN: not %lld ---help 2>&1 | FileCheck -check-prefix=SPELLHELP %s
+
+SPELLHELP: error: unknown argument '---help', did you mean '--help'
+# FIXME: This should say "no input files" instead
+SPELLHELP: error: undefined symbol: _main
RUN: -ios_simulator_version_min 9.0.0 \
RUN: -sdk_version 13.2
RUN: not %lld -v --not-an-ignored-argument 2>&1 | FileCheck %s
-CHECK: error: unknown argument: --not-an-ignored-argument
+CHECK: error: unknown argument '--not-an-ignored-argument'