diff options
author | Joseph Myers <joseph@codesourcery.com> | 2010-07-28 10:36:21 +0100 |
---|---|---|
committer | Joseph Myers <jsm28@gcc.gnu.org> | 2010-07-28 10:36:21 +0100 |
commit | eea13eaddc2a75a685f8a074e57f3510f9ca9c57 (patch) | |
tree | 8fceb4a0955d8a639a2e7420a4f65b586c873f62 /gcc/ada/gcc-interface/misc.c | |
parent | 57e15568e886ab57612d45618deb416c8f63eec2 (diff) | |
download | gcc-eea13eaddc2a75a685f8a074e57f3510f9ca9c57.zip gcc-eea13eaddc2a75a685f8a074e57f3510f9ca9c57.tar.gz gcc-eea13eaddc2a75a685f8a074e57f3510f9ca9c57.tar.bz2 |
darwin-driver.c (SWITCH_TAKES_ARG, [...]): Remove.
* config/darwin-driver.c (SWITCH_TAKES_ARG,
WORD_SWITCH_TAKES_ARG): Remove.
* cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
* defaults.h (DEFAULT_SWITCH_TAKES_ARG,
DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
(SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
definitions from gcc.c.
* gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
defaults.h.
* gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
Move to defaults.h.
* opts-common.c: Include tm.h.
(decode_cmdline_option): Use SWITCH_TAKES_ARG and
WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
Handle more than one argument. Set canonical_option_num_elements.
(decode_cmdline_options_to_array): Set
canonical_option_num_elements and trailing elements of
canonical_option.
* opts.h (struct cl_decoded_option): Allow four elements in
canonical_option. Add field canonical_option_num_elements.
* Makefile.in (opts-common.o): Update dependencies.
ada:
* gcc-interface/misc.c (gnat_init_options): Ignore erroneous
options. Check canonical_option_num_elements on options copied.
fortran:
* gfortranspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG):
Remove.
From-SVN: r162620
Diffstat (limited to 'gcc/ada/gcc-interface/misc.c')
-rw-r--r-- | gcc/ada/gcc-interface/misc.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/ada/gcc-interface/misc.c b/gcc/ada/gcc-interface/misc.c index 01b33a3..c104e29 100644 --- a/gcc/ada/gcc-interface/misc.c +++ b/gcc/ada/gcc-interface/misc.c @@ -272,8 +272,13 @@ gnat_init_options (unsigned int decoded_options_count, save_argc = 0; for (i = 0; i < decoded_options_count; i++) { + if (decoded_options[i].errors + || decoded_options[i].opt_index == OPT_SPECIAL_unknown) + continue; + gcc_assert (decoded_options[i].canonical_option_num_elements >= 1 + && decoded_options[i].canonical_option_num_elements <= 2); save_argv[save_argc++] = decoded_options[i].canonical_option[0]; - if (decoded_options[i].canonical_option[1] != NULL) + if (decoded_options[i].canonical_option_num_elements >= 2) save_argv[save_argc++] = decoded_options[i].canonical_option[1]; } save_argv[save_argc] = NULL; |