diff options
Diffstat (limited to 'gcc/toplev.c')
-rw-r--r-- | gcc/toplev.c | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/gcc/toplev.c b/gcc/toplev.c index 80fb4ceb4c6..2ed76bc610d 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -1267,12 +1267,28 @@ process_options (void) maximum_field_alignment = initial_max_fld_align * BITS_PER_UNIT; - /* Default to -fdiagnostics-color=auto if GCC_COLORS is in the environment, - otherwise default to -fdiagnostics-color=never. */ - if (!global_options_set.x_flag_diagnostics_show_color - && getenv ("GCC_COLORS")) - pp_show_color (global_dc->printer) - = colorize_init (DIAGNOSTICS_COLOR_AUTO); + /* If DIAGNOSTICS_COLOR_DEFAULT is -1, default to -fdiagnostics-color=auto + if GCC_COLORS is in the environment, otherwise default to + -fdiagnostics-color=never, for other values default to that + -fdiagnostics-color={never,auto,always}. */ + if (!global_options_set.x_flag_diagnostics_show_color) + switch ((int) DIAGNOSTICS_COLOR_DEFAULT) + { + case -1: + if (!getenv ("GCC_COLORS")) + break; + /* FALLTHRU */ + case DIAGNOSTICS_COLOR_AUTO: + pp_show_color (global_dc->printer) + = colorize_init (DIAGNOSTICS_COLOR_AUTO); + break; + case DIAGNOSTICS_COLOR_YES: + pp_show_color (global_dc->printer) + = colorize_init (DIAGNOSTICS_COLOR_YES); + break; + default: + break; + } /* Allow the front end to perform consistency checks and do further initialization based on the command line options. This hook also |