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

Reply via email to