aboutsummaryrefslogtreecommitdiff
path: root/gcc/opts.c
diff options
context:
space:
mode:
authorDavid Malcolm <dmalcolm@redhat.com>2016-06-30 00:05:39 +0000
committerDavid Malcolm <dmalcolm@gcc.gnu.org>2016-06-30 00:05:39 +0000
commitf4452176d8b7d718f50616c6908da8b8a9811bdf (patch)
treef0226fa372c19600fd529ccba821f68b9b1613ba /gcc/opts.c
parentc5e74d9d4ebeb29fab731464c206296ec651e9a6 (diff)
downloadgcc-f4452176d8b7d718f50616c6908da8b8a9811bdf.zip
gcc-f4452176d8b7d718f50616c6908da8b8a9811bdf.tar.gz
gcc-f4452176d8b7d718f50616c6908da8b8a9811bdf.tar.bz2
Offer suggestions for misspelled --param names.
gcc/ChangeLog: * opts.c (handle_param): Use find_param_fuzzy to offer suggestions for misspelled param names. * params.c: Include spellcheck.h. (find_param_fuzzy): New function. * params.h (find_param_fuzzy): New prototype. * spellcheck.c (struct edit_distance_traits<const char *>): Move to... * spellcheck.h (struct edit_distance_traits<const char *>): ...here. gcc/testsuite/ChangeLog: * gcc.dg/spellcheck-params.c: New testcase. * gcc.dg/spellcheck-params-2.c: New testcase. From-SVN: r237865
Diffstat (limited to 'gcc/opts.c')
-rw-r--r--gcc/opts.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/gcc/opts.c b/gcc/opts.c
index 7406210..f09c520 100644
--- a/gcc/opts.c
+++ b/gcc/opts.c
@@ -2228,7 +2228,14 @@ handle_param (struct gcc_options *opts, struct gcc_options *opts_set,
enum compiler_param index;
if (!find_param (arg, &index))
- error_at (loc, "invalid --param name %qs", arg);
+ {
+ const char *suggestion = find_param_fuzzy (arg);
+ if (suggestion)
+ error_at (loc, "invalid --param name %qs; did you mean %qs?",
+ arg, suggestion);
+ else
+ error_at (loc, "invalid --param name %qs", arg);
+ }
else
{
if (!param_string_value_p (index, equal + 1, &value))