re PR ada/45499 (Ada bootstrap broken)

PR ada/45499
	* gcc-interface/misc.c (gnat_init_options): Allow options with
	empty canonical form.  Generate a single save_argv element from -I
	options.

From-SVN: r163817
This commit is contained in:
Joseph Myers 2010-09-03 14:17:46 +01:00 committed by Joseph Myers
parent f4dae9fcc0
commit ffb7f675d8
2 changed files with 24 additions and 6 deletions

View File

@ -1,3 +1,10 @@
2010-09-03 Joseph Myers <joseph@codesourcery.com>
PR ada/45499
* gcc-interface/misc.c (gnat_init_options): Allow options with
empty canonical form. Generate a single save_argv element from -I
options.
2010-08-30 Eric Botcazou <ebotcazou@adacore.com>
* gcc-interface/utils.c (gnat_pushdecl): Remove test for PARM_DECLs.

View File

@ -273,13 +273,24 @@ gnat_init_options (unsigned int decoded_options_count,
for (i = 0; i < decoded_options_count; i++)
{
if (decoded_options[i].errors
|| decoded_options[i].opt_index == OPT_SPECIAL_unknown)
|| decoded_options[i].opt_index == OPT_SPECIAL_unknown
|| decoded_options[i].canonical_option_num_elements == 0)
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_num_elements >= 2)
save_argv[save_argc++] = decoded_options[i].canonical_option[1];
if (decoded_options[i].opt_index == OPT_I)
{
gcc_assert (decoded_options[i].canonical_option_num_elements == 2);
save_argv[save_argc++]
= concat (decoded_options[i].canonical_option[0],
decoded_options[i].canonical_option[1], NULL);
}
else
{
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_num_elements >= 2)
save_argv[save_argc++] = decoded_options[i].canonical_option[1];
}
}
save_argv[save_argc] = NULL;