From 90f1430589e2f3efa8136346615fc08edfd936f3 Mon Sep 17 00:00:00 2001 From: Martin Liska Date: Mon, 1 Apr 2019 09:17:38 +0200 Subject: [PATCH] Enhance option suggestion for options expected an argument (PR driver/89861). 2019-04-01 Martin Liska PR driver/89861 * opt-suggestions.c (option_proposer::build_option_suggestions): Add variant without any argument in order to provide better hints. 2019-04-01 Martin Liska PR driver/89861 * gcc.dg/spellcheck-options-18.c: New test. * gcc.dg/spellcheck-options-19.c: New test. * gcc.dg/spellcheck-options-20.c: New test. * gcc.dg/spellcheck-options-13.c: Adjust expected output. * gcc.dg/completion-2.c: Add one variant with no argument. From-SVN: r270053 --- gcc/ChangeLog | 7 +++++++ gcc/opt-suggestions.c | 8 ++++++++ gcc/testsuite/ChangeLog | 9 +++++++++ gcc/testsuite/gcc.dg/completion-2.c | 1 + gcc/testsuite/gcc.dg/spellcheck-options-13.c | 2 +- gcc/testsuite/gcc.dg/spellcheck-options-18.c | 3 +++ gcc/testsuite/gcc.dg/spellcheck-options-19.c | 3 +++ gcc/testsuite/gcc.dg/spellcheck-options-20.c | 3 +++ 8 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gcc.dg/spellcheck-options-18.c create mode 100644 gcc/testsuite/gcc.dg/spellcheck-options-19.c create mode 100644 gcc/testsuite/gcc.dg/spellcheck-options-20.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6982daaab18..e123db0fe9c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2019-04-01 Martin Liska + + PR driver/89861 + * opt-suggestions.c (option_proposer::build_option_suggestions): + Add variant without any argument in order to provide better + hints. + 2019-04-01 Richard Biener PR c/71598 diff --git a/gcc/opt-suggestions.c b/gcc/opt-suggestions.c index c14c29d3083..415dcc9fc45 100644 --- a/gcc/opt-suggestions.c +++ b/gcc/opt-suggestions.c @@ -134,6 +134,10 @@ option_proposer::build_option_suggestions (const char *prefix) with_arg); free (with_arg); } + + /* Add also variant without an option argument. */ + add_misspelling_candidates (m_option_suggestions, option, + opt_text); } else { @@ -172,6 +176,10 @@ option_proposer::build_option_suggestions (const char *prefix) "-fsanitize=address" rather than to "-Wframe-address" (PR driver/69265). */ { + /* Add also variant without an option argument. */ + add_misspelling_candidates (m_option_suggestions, option, + opt_text); + for (int j = 0; sanitizer_opts[j].name != NULL; ++j) { struct cl_option optb; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index a6ac581f744..15b32a254d1 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,12 @@ +2019-04-01 Martin Liska + + PR driver/89861 + * gcc.dg/spellcheck-options-18.c: New test. + * gcc.dg/spellcheck-options-19.c: New test. + * gcc.dg/spellcheck-options-20.c: New test. + * gcc.dg/spellcheck-options-13.c: Adjust expected output. + * gcc.dg/completion-2.c: Add one variant with no argument. + 2019-04-01 Richard Biener PR c/71598 diff --git a/gcc/testsuite/gcc.dg/completion-2.c b/gcc/testsuite/gcc.dg/completion-2.c index ac7508591de..166bfdc1424 100644 --- a/gcc/testsuite/gcc.dg/completion-2.c +++ b/gcc/testsuite/gcc.dg/completion-2.c @@ -7,4 +7,5 @@ -flto-partition=max -flto-partition=none -flto-partition=one +-flto-partition= { dg-end-multiline-output "" } */ diff --git a/gcc/testsuite/gcc.dg/spellcheck-options-13.c b/gcc/testsuite/gcc.dg/spellcheck-options-13.c index 19b63af565b..0d00642d87e 100644 --- a/gcc/testsuite/gcc.dg/spellcheck-options-13.c +++ b/gcc/testsuite/gcc.dg/spellcheck-options-13.c @@ -2,4 +2,4 @@ /* { dg-do compile } */ /* { dg-options "-fsanitize" } */ -/* { dg-error "unrecognized command line option .-fsanitize..$" "" { target *-*-* } 0 } */ +/* { dg-error "unrecognized command line option '-fsanitize'; did you mean '-fsanitize='?" "" { target *-*-* } 0 } */ diff --git a/gcc/testsuite/gcc.dg/spellcheck-options-18.c b/gcc/testsuite/gcc.dg/spellcheck-options-18.c new file mode 100644 index 00000000000..387d04e3743 --- /dev/null +++ b/gcc/testsuite/gcc.dg/spellcheck-options-18.c @@ -0,0 +1,3 @@ +/* { dg-do compile } */ +/* { dg-options "-fprofile-update" } */ +/* { dg-error "unrecognized command line option '-fprofile-update'; did you mean '-fprofile-update='?" "" { target *-*-* } 0 } */ diff --git a/gcc/testsuite/gcc.dg/spellcheck-options-19.c b/gcc/testsuite/gcc.dg/spellcheck-options-19.c new file mode 100644 index 00000000000..5a104763993 --- /dev/null +++ b/gcc/testsuite/gcc.dg/spellcheck-options-19.c @@ -0,0 +1,3 @@ +/* { dg-do compile } */ +/* { dg-options "-fno-sanitize" } */ +/* { dg-error "unrecognized command line option '-fno-sanitize'; did you mean '-fno-sanitize='?" "" { target *-*-* } 0 } */ diff --git a/gcc/testsuite/gcc.dg/spellcheck-options-20.c b/gcc/testsuite/gcc.dg/spellcheck-options-20.c new file mode 100644 index 00000000000..dfc6149e023 --- /dev/null +++ b/gcc/testsuite/gcc.dg/spellcheck-options-20.c @@ -0,0 +1,3 @@ +/* { dg-do compile } */ +/* { dg-options "-Walloc-size-larger-than" } */ +/* { dg-error "unrecognized command line option '-Walloc-size-larger-than'; did you mean '-Walloc-size-larger-than='?" "" { target *-*-* } 0 } */ -- 2.30.2