]> gcc.gnu.org Git - gcc.git/commitdiff
re PR ada/45499 (Ada bootstrap broken)
authorJoseph Myers <joseph@codesourcery.com>
Fri, 3 Sep 2010 13:17:46 +0000 (14:17 +0100)
committerJoseph Myers <jsm28@gcc.gnu.org>
Fri, 3 Sep 2010 13:17:46 +0000 (14:17 +0100)
PR ada/45499
* gcc-interface/misc.c (gnat_init_options): Allow options with
empty canonical form.  Generate a single save_argv element from -I
options.

From-SVN: r163817

gcc/ada/ChangeLog
gcc/ada/gcc-interface/misc.c

index 86226afd44b59a00ccbc500fc0d9ccf9f19fd92c..020746bf613dce9917c9b4c6fc883793142dd436 100644 (file)
@@ -1,3 +1,10 @@
+2010-09-03  Joseph Myers  <joseph@codesourcery.com>
+
+       PR ada/45499
+       * gcc-interface/misc.c (gnat_init_options): Allow options with
+       empty canonical form.  Generate a single save_argv element from -I
+       options.
+
 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
 
        * gcc-interface/utils.c (gnat_pushdecl): Remove test for PARM_DECLs.
index c104e2935df009004dfa5440306aa1c3c942a17a..080e98845324921a35d388df5430443c43ca52b7 100644 (file)
@@ -273,13 +273,24 @@ gnat_init_options (unsigned int decoded_options_count,
   for (i = 0; i < decoded_options_count; i++)
     {
       if (decoded_options[i].errors
-         || decoded_options[i].opt_index == OPT_SPECIAL_unknown)
+         || decoded_options[i].opt_index == OPT_SPECIAL_unknown
+         || decoded_options[i].canonical_option_num_elements == 0)
        continue;
-      gcc_assert (decoded_options[i].canonical_option_num_elements >= 1
-                 && decoded_options[i].canonical_option_num_elements <= 2);
-      save_argv[save_argc++] = decoded_options[i].canonical_option[0];
-      if (decoded_options[i].canonical_option_num_elements >= 2)
-       save_argv[save_argc++] = decoded_options[i].canonical_option[1];
+      if (decoded_options[i].opt_index == OPT_I)
+       {
+         gcc_assert (decoded_options[i].canonical_option_num_elements == 2);
+         save_argv[save_argc++]
+           = concat (decoded_options[i].canonical_option[0],
+                     decoded_options[i].canonical_option[1], NULL);
+       }
+      else
+       {
+         gcc_assert (decoded_options[i].canonical_option_num_elements >= 1
+                     && decoded_options[i].canonical_option_num_elements <= 2);
+         save_argv[save_argc++] = decoded_options[i].canonical_option[0];
+         if (decoded_options[i].canonical_option_num_elements >= 2)
+           save_argv[save_argc++] = decoded_options[i].canonical_option[1];
+       }
     }
   save_argv[save_argc] = NULL;
 
This page took 0.072379 seconds and 5 git commands to generate.