forked from OSchip/llvm-project
[Driver] Add "did you mean?" suggestions to -cc1as
Summary: In https://reviews.llvm.org/D41733, the driver was modified such that, when a user provided a mispelled option such as `-hel`, it would suggest a valid option with a nearby edit distance: "did you mean '-help'?". Add these suggestions to invocations of `clang -cc1as` as well. Test Plan: `check-clang` Reviewers: v.g.vassilev, bruno Reviewed By: v.g.vassilev Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D42001 llvm-svn: 322445
This commit is contained in:
parent
f408745306
commit
ceb987f082
|
@ -12,6 +12,8 @@
|
|||
// RUN: FileCheck %s --check-prefix=CL-ERROR-DID-YOU-MEAN
|
||||
// RUN: %clang_cl -cake-is-lie -%0 -%d -HHHH -munknown-to-clang-option -print-stats -funknown-to-clang-option -c -Wno-unknown-argument -### -- %s 2>&1 | \
|
||||
// RUN: FileCheck %s --check-prefix=SILENT
|
||||
// RUN: not %clang -cc1as -hell --version -debug-info-macros 2>&1 | \
|
||||
// RUN: FileCheck %s --check-prefix=CC1AS-DID-YOU-MEAN
|
||||
|
||||
// CHECK: error: unknown argument: '-cake-is-lie'
|
||||
// CHECK: error: unknown argument: '-%0'
|
||||
|
@ -41,6 +43,9 @@
|
|||
// CL-ERROR-DID-YOU-MEAN: error: unknown argument ignored in clang-cl '-helo' (did you mean '-help'?)
|
||||
// SILENT-NOT: error:
|
||||
// SILENT-NOT: warning:
|
||||
// CC1AS-DID-YOU-MEAN: error: unknown argument '-hell', did you mean '-help'?
|
||||
// CC1AS-DID-YOU-MEAN: error: unknown argument '--version', did you mean '-version'?
|
||||
// CC1AS-DID-YOU-MEAN: error: unknown argument '-debug-info-macros', did you mean '-debug-info-macro'?
|
||||
|
||||
|
||||
// RUN: %clang -S %s -o %t.s -Wunknown-to-clang-option 2>&1 | FileCheck --check-prefix=IGNORED %s
|
||||
|
|
|
@ -181,7 +181,13 @@ bool AssemblerInvocation::CreateFromArgs(AssemblerInvocation &Opts,
|
|||
|
||||
// Issue errors on unknown arguments.
|
||||
for (const Arg *A : Args.filtered(OPT_UNKNOWN)) {
|
||||
Diags.Report(diag::err_drv_unknown_argument) << A->getAsString(Args);
|
||||
auto ArgString = A->getAsString(Args);
|
||||
std::string Nearest;
|
||||
if (OptTbl->findNearest(ArgString, Nearest, IncludedFlagsBitmask) > 1)
|
||||
Diags.Report(diag::err_drv_unknown_argument) << ArgString;
|
||||
else
|
||||
Diags.Report(diag::err_drv_unknown_argument_with_suggestion)
|
||||
<< ArgString << Nearest;
|
||||
Success = false;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue