diff mbox series

Add missing target options (PR middle-end/90258).

Message ID 4b09d56d-5162-73a7-d250-55d4e105540e@suse.cz
State New
Headers show
Series Add missing target options (PR middle-end/90258). | expand

Commit Message

Martin Liška April 26, 2019, 11:02 a.m. UTC
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.
---
 gcc/opt-suggestions.c                                | 5 ++++-
 gcc/testsuite/gcc.dg/completion-5.c                  | 7 +++++++
 gcc/testsuite/gcc.target/i386/spellcheck-options-5.c | 5 +++++
 3 files changed, 16 insertions(+), 1 deletion(-)
 create mode 100644 gcc/testsuite/gcc.dg/completion-5.c
 create mode 100644 gcc/testsuite/gcc.target/i386/spellcheck-options-5.c

Comments

Jeff Law April 26, 2019, 3:24 p.m. UTC | #1
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
Martin Liška April 27, 2019, 6:42 a.m. UTC | #2
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 mbox series

Patch

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 } */