https://gcc.gnu.org/g:3454cca24a92a535a46fe4ec9d5d41585002fc4b
commit r14-11087-g3454cca24a92a535a46fe4ec9d5d41585002fc4b Author: Marek Polacek <pola...@redhat.com> Date: Mon Dec 9 08:19:35 2024 -0500 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 <josmy...@redhat.com> (cherry picked from commit be2062be9a629ae18a0c87c6b9cbe1885978417e) Diff: --- gcc/opts-common.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gcc/opts-common.cc b/gcc/opts-common.cc index f68a9b95ee39..bbe11879d5c2 100644 --- a/gcc/opts-common.cc +++ b/gcc/opts-common.cc @@ -1076,7 +1076,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