driver: fix crash with --diagnostics-plain-output [PR117942]

We are crashing here because decode_cmdline_options_to_array has:

  if (!strcmp (opt, "-fdiagnostics-plain-output"))
    ...

but that doesn't handle the '--FLAG' variant.

	PR driver/117942

gcc/ChangeLog:

	* opts-common.cc (decode_cmdline_options_to_array): Also detect
	--diagnostics-plain-output.

Reviewed-by: Joseph Myers <josmyers@redhat.com>
This commit is contained in:
Marek Polacek 2024-12-09 08:19:35 -05:00
parent d4525729b7
commit be2062be9a

View file

@ -1077,7 +1077,9 @@ decode_cmdline_options_to_array (unsigned int argc, const char **argv,
/* Expand -fdiagnostics-plain-output to its constituents. This needs
to happen here so that prune_options can handle -fdiagnostics-color
specially. */
if (!strcmp (opt, "-fdiagnostics-plain-output"))
if (opt[0] == '-'
&& (opt[1] == '-' || opt[1] == 'f')
&& !strcmp (opt + 2, "diagnostics-plain-output"))
{
/* If you have changed the default diagnostics output, and this new
output is not appropriately "plain" (e.g., the change needs to be