From: Olivier Hainque Date: Thu, 6 Jul 2017 15:04:30 +0000 (+0000) Subject: gcc.c (spec_undefvar_allowed): New global. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=3ed93fc86ce9f8fa76d2df6aa1c802ac68eb09fa;p=gcc.git gcc.c (spec_undefvar_allowed): New global. 2017-07-06 Olivier Hainque * gcc.c (spec_undefvar_allowed): New global. (process_command): Set to true when running for --version or --help alone, or together. (getenv_spec_function): When the variable is not defined, use the variable name as the variable value if we're allowed not to issue a fatal error. From-SVN: r250027 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4fd19e643db..9d4b01ff981 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2017-07-06 Olivier Hainque + + * gcc.c (spec_undefvar_allowed): New global. + (process_command): Set to true when running for --version or --help + alone, or together. + (getenv_spec_function): When the variable is not defined, use the + variable name as the variable value if we're allowed not to issue + a fatal error. + 2017-07-06 Jan Hubicka * auto-profile.c (afdo_set_bb_count, afdo_propagate_edge, diff --git a/gcc/gcc.c b/gcc/gcc.c index 6d724b25423..e8e3d6687c3 100644 --- a/gcc/gcc.c +++ b/gcc/gcc.c @@ -4615,23 +4615,23 @@ process_command (unsigned int decoded_options_count, /* Decide if undefined variable references are allowed in specs. */ - /* --version and --help alone or together are safe. Note that -v would - make them unsafe, as they'd then be run for subprocesses as well, the - location of which might depend on variables possibly coming from - self-specs. + /* -v alone is safe. --version and --help alone or together are safe. Note + that -v would make them unsafe, as they'd then be run for subprocesses as + well, the location of which might depend on variables possibly coming + from self-specs. Note also that the command name is counted in + decoded_options_count. */ - Count the number of options we have for which undefined variables - are harmless for sure, and check that nothing else is set. */ - - unsigned n_varsafe_options = 0; + unsigned help_version_count = 0; if (print_version) - n_varsafe_options++; - + help_version_count++; + if (print_help_list) - n_varsafe_options++; - - spec_undefvar_allowed = (n_varsafe_options == decoded_options_count - 1); + help_version_count++; + + spec_undefvar_allowed = + ((verbose_flag && decoded_options_count == 2) + || help_version_count == decoded_options_count - 1); alloc_switch (); switches[n_switches].part1 = 0;