Message ID | 4b09d56d-5162-73a7-d250-55d4e105540e@suse.cz |
---|---|
State | New |
Headers | show |
Series | Add missing target options (PR middle-end/90258). | expand |
On 4/26/19 5:02 AM, Martin Liška wrote: > Hi. > > The fix is about forgotten target options for which get_valid_option_values > returns empty list. > > Patch can bootstrap on x86_64-linux-gnu and survives regression tests. > > Ready to be installed to trunk and later than to gcc-9 branch? > Thanks, > Martin > > gcc/ChangeLog: > > 2019-04-26 Martin Liska <mliska@suse.cz> > > PR middle-end/90258 > * opt-suggestions.c (option_proposer::build_option_suggestions): > When get_valid_option_values returns empty values, add the > misspelling candidate. > > gcc/testsuite/ChangeLog: > > 2019-04-26 Martin Liska <mliska@suse.cz> > > PR middle-end/90258 > * gcc.dg/completion-5.c: New test. > * gcc.target/i386/spellcheck-options-5.c: New test. OK for the trunk. Your call on when to cherry-pick it onto the gcc-9 branch. Jeff
On 4/26/19 5:24 PM, Jeff Law wrote: > On 4/26/19 5:02 AM, Martin Liška wrote: >> Hi. >> >> The fix is about forgotten target options for which get_valid_option_values >> returns empty list. >> >> Patch can bootstrap on x86_64-linux-gnu and survives regression tests. >> >> Ready to be installed to trunk and later than to gcc-9 branch? >> Thanks, >> Martin >> >> gcc/ChangeLog: >> >> 2019-04-26 Martin Liska <mliska@suse.cz> >> >> PR middle-end/90258 >> * opt-suggestions.c (option_proposer::build_option_suggestions): >> When get_valid_option_values returns empty values, add the >> misspelling candidate. >> >> gcc/testsuite/ChangeLog: >> >> 2019-04-26 Martin Liska <mliska@suse.cz> >> >> PR middle-end/90258 >> * gcc.dg/completion-5.c: New test. >> * gcc.target/i386/spellcheck-options-5.c: New test. > OK for the trunk. Your call on when to cherry-pick it onto the gcc-9 > branch. > > Jeff > Thank you for review, installed as r270622 to trunk. I would like to see the patch in GCC 9.1. What's release managers opinion? Thanks, Martin
diff --git a/gcc/opt-suggestions.c b/gcc/opt-suggestions.c index 415dcc9fc45..a820c78ff56 100644 --- a/gcc/opt-suggestions.c +++ b/gcc/opt-suggestions.c @@ -141,12 +141,14 @@ option_proposer::build_option_suggestions (const char *prefix) } else { + bool option_added = false; if (option->flags & CL_TARGET) { vec<const char *> option_values = targetm_common.get_valid_option_values (i, prefix); if (!option_values.is_empty ()) { + option_added = true; for (unsigned j = 0; j < option_values.length (); j++) { char *with_arg = concat (opt_text, option_values[j], @@ -158,7 +160,8 @@ option_proposer::build_option_suggestions (const char *prefix) } option_values.release (); } - else + + if (!option_added) add_misspelling_candidates (m_option_suggestions, option, opt_text); } diff --git a/gcc/testsuite/gcc.dg/completion-5.c b/gcc/testsuite/gcc.dg/completion-5.c new file mode 100644 index 00000000000..6719cfb6717 --- /dev/null +++ b/gcc/testsuite/gcc.dg/completion-5.c @@ -0,0 +1,7 @@ +/* { dg-do compile { target { i?86-*-* x86_64-*-* } } } */ +/* { dg-options "--completion=-mfm" } */ + +/* { dg-begin-multiline-output "" } +-mfma +-mfma4 + { dg-end-multiline-output "" } */ diff --git a/gcc/testsuite/gcc.target/i386/spellcheck-options-5.c b/gcc/testsuite/gcc.target/i386/spellcheck-options-5.c new file mode 100644 index 00000000000..4a878ba2da0 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/spellcheck-options-5.c @@ -0,0 +1,5 @@ +/* PR middle-end/90258. */ + +/* { dg-do compile } */ +/* { dg-options "-mandroidX" } */ +/* { dg-error "unrecognized command line option '-mandroidX'; did you mean '-mandroid'" "" { target *-*-* } 0 } */