mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-26 01:40:55 +08:00
Provide hint for misspelled -fdump-foo options.
gcc/ChangeLog: 2020-03-19 Martin Liska <mliska@suse.cz> * dumpfile.c (dump_switch_p): Change return type and print option suggestion. * dumpfile.h: Change return type. * opts-global.c (handle_common_deferred_options): Move error into dump_switch_p function. gcc/testsuite/ChangeLog: 2020-03-19 Martin Liska <mliska@suse.cz> * gcc.dg/spellcheck-options-22.c: New test.
This commit is contained in:
parent
d214842416
commit
48c041033e
@ -39,6 +39,7 @@ along with GCC; see the file COPYING3. If not see
|
||||
#include "tree-pass.h" /* for "current_pass". */
|
||||
#include "optinfo-emit-json.h"
|
||||
#include "stringpool.h" /* for get_identifier. */
|
||||
#include "spellcheck.h"
|
||||
|
||||
/* If non-NULL, return one past-the-end of the matching SUBPART of
|
||||
the WHOLE string. */
|
||||
@ -1874,7 +1875,7 @@ dump_switch_p_1 (const char *arg, struct dump_file_info *dfi, bool doglob)
|
||||
return 1;
|
||||
}
|
||||
|
||||
int
|
||||
void
|
||||
gcc::dump_manager::
|
||||
dump_switch_p (const char *arg)
|
||||
{
|
||||
@ -1896,8 +1897,20 @@ dump_switch_p (const char *arg)
|
||||
for (i = 0; i < m_extra_dump_files_in_use; i++)
|
||||
any |= dump_switch_p_1 (arg, &m_extra_dump_files[i], true);
|
||||
|
||||
|
||||
return any;
|
||||
if (!any)
|
||||
{
|
||||
auto_vec<const char *> candidates;
|
||||
for (size_t i = TDI_none + 1; i != TDI_end; i++)
|
||||
candidates.safe_push (dump_files[i].swtch);
|
||||
for (size_t i = 0; i < m_extra_dump_files_in_use; i++)
|
||||
candidates.safe_push (m_extra_dump_files[i].swtch);
|
||||
const char *hint = find_closest_string (arg, &candidates);
|
||||
if (hint)
|
||||
error ("unrecognized command-line option %<-fdump-%s%>; "
|
||||
"did you mean %<-fdump-%s%>?", arg, hint);
|
||||
else
|
||||
error ("unrecognized command-line option %<-fdump-%s%>", arg);
|
||||
}
|
||||
}
|
||||
|
||||
/* Parse ARG as a -fopt-info switch and store flags, optgroup_flags
|
||||
|
@ -691,7 +691,7 @@ public:
|
||||
char *
|
||||
get_dump_file_name (struct dump_file_info *dfi, int part = -1) const;
|
||||
|
||||
int
|
||||
void
|
||||
dump_switch_p (const char *arg);
|
||||
|
||||
/* Start a dump for PHASE. Store user-supplied dump flags in
|
||||
|
@ -385,8 +385,7 @@ handle_common_deferred_options (void)
|
||||
break;
|
||||
|
||||
case OPT_fdump_:
|
||||
if (!g->get_dumps ()->dump_switch_p (opt->arg))
|
||||
error ("unrecognized command-line option %<-fdump-%s%>", opt->arg);
|
||||
g->get_dumps ()->dump_switch_p (opt->arg);
|
||||
break;
|
||||
|
||||
case OPT_fopt_info_:
|
||||
|
3
gcc/testsuite/gcc.dg/spellcheck-options-22.c
Normal file
3
gcc/testsuite/gcc.dg/spellcheck-options-22.c
Normal file
@ -0,0 +1,3 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-fdump-ipa-ynline" } */
|
||||
/* { dg-error "unrecognized command-line option '-fdump-ipa-ynline'; did you mean '-fdump-ipa-inline'?" "" { target *-*-* } 0 } */
|
Loading…
x
Reference in New Issue
Block a user