+2017-07-06 Olivier Hainque <hainque@adacore.com>
+
+ * 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 <hubicka@ucw.cz>
* auto-profile.c (afdo_set_bb_count, afdo_propagate_edge,
/* 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;