https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107790

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2022-11-21

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Confirmed.

Something like:
diff --git a/gcc/cp/g++spec.cc b/gcc/cp/g++spec.cc
index 257e49b7f3f..d4494bf266f 100644
--- a/gcc/cp/g++spec.cc
+++ b/gcc/cp/g++spec.cc
@@ -307,6 +307,7 @@ lang_specific_driver (struct cl_decoded_option
**in_decoded_options,

   /* Copy the 0th argument, i.e., the name of the program itself.  */
   new_decoded_options[j++] = decoded_options[i++];
+  bool needscxxexpadded = false;

   /* NOTE: We start at 1 now, not 0.  */
   while (i < argc)
@@ -357,8 +358,7 @@ lang_specific_driver (struct cl_decoded_option
**in_decoded_options,

       if ((args[i] & EXPERIMENTAL)
          && which_library == USE_LIBSTDCXX)
-       generate_option (OPT_l, "stdc++exp", 1, CL_DRIVER,
-                        &new_decoded_options[++j]);
+       needscxxexpadded = true;

       if ((args[i] & SKIPOPT) != 0)
        --j;
@@ -367,6 +367,10 @@ lang_specific_driver (struct cl_decoded_option
**in_decoded_options,
       j++;
     }

+  if (needscxxexpadded)
+    generate_option (OPT_l, "stdc++exp", 1, CL_DRIVER,
+                    &new_decoded_options[++j]);
+
   /* Add `-lstdc++' if we haven't already done so.  */
   if (library > 0)
     {

Reply via email to