It's quite an obvious error I made during concat of
merged_decoded_options.

make check -k RUNTESTFLAGS="i386.exp"

works fine now.

Martin

        PR target/102552

gcc/c-family/ChangeLog:

        * c-common.c (parse_optimize_options): decoded_options[0] is
          used for program name, so merged_decoded_options should also
          respect that.
---
 gcc/c-family/c-common.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/gcc/c-family/c-common.c b/gcc/c-family/c-common.c
index 7b99a5546ea..5845c675e85 100644
--- a/gcc/c-family/c-common.c
+++ b/gcc/c-family/c-common.c
@@ -5912,9 +5912,10 @@ parse_optimize_options (tree args, bool attr_p)
   cl_decoded_option *merged_decoded_options
     = XNEWVEC (cl_decoded_option, merged_decoded_options_count);
+ /* Note the first decoded_options is used for the program name. */
   for (unsigned i = 0; i < save_opt_count; ++i)
-    merged_decoded_options[i] = save_opt_decoded_options[i];
-  for (unsigned i = 0; i < decoded_options_count; ++i)
+    merged_decoded_options[i + 1] = save_opt_decoded_options[i];
+  for (unsigned i = 1; i < decoded_options_count; ++i)
     merged_decoded_options[save_opt_count + i] = decoded_options[i];
/* And apply them. */
--
2.33.0

Reply via email to