Handle OPT_SPECIAL_XXX in LTO
authorH.J. Lu <hongjiu.lu@intel.com>
Tue, 27 Nov 2012 13:56:31 +0000 (13:56 +0000)
committerH.J. Lu <hjl@gcc.gnu.org>
Tue, 27 Nov 2012 13:56:31 +0000 (05:56 -0800)
PR lto/54795
* lto-opts.c (lto_write_options): Also handle
OPT_SPECIAL_unknown, OPT_SPECIAL_ignore and
OPT_SPECIAL_program_name.

PR lto/55474
* lto-wrapper.c (merge_and_complain): Handle
OPT_SPECIAL_unknown, OPT_SPECIAL_ignore,
OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.

Co-Authored-By: Markus Trippelsdorf <markus@trippelsdorf.de>
From-SVN: r193848

gcc/ChangeLog
gcc/lto-opts.c
gcc/lto-wrapper.c

index 5a18b153d01a6fbcc9dd22b0cb3e17c002981155..1202386d5d8f14418278ae1ed4a341319f0ae277 100644 (file)
@@ -1,3 +1,16 @@
+2012-11-27  H.J. Lu  <hongjiu.lu@intel.com>
+           Markus Trippelsdorf  <markus@trippelsdorf.de>
+
+       PR lto/54795
+       * lto-opts.c (lto_write_options): Also handle
+       OPT_SPECIAL_unknown, OPT_SPECIAL_ignore and
+       OPT_SPECIAL_program_name.
+
+       PR lto/55474
+       * lto-wrapper.c (merge_and_complain): Handle
+       OPT_SPECIAL_unknown, OPT_SPECIAL_ignore,
+       OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
+
 2012-11-27  Jakub Jelinek  <jakub@redhat.com>
 
        PR middle-end/52650
index a235f41da8de399511b169525e9c9333a01e017e..a61a26ff56f66b7f5ce6314583a2c3000cdfd174 100644 (file)
@@ -93,6 +93,20 @@ lto_write_options (void)
     {
       struct cl_decoded_option *option = &save_decoded_options[i];
 
+      /* Skip explicitly some common options that we do not need.  */
+      switch (option->opt_index)
+      {
+       case OPT_dumpbase:
+       case OPT_SPECIAL_unknown:
+       case OPT_SPECIAL_ignore:
+       case OPT_SPECIAL_program_name:
+       case OPT_SPECIAL_input_file:
+         continue;
+
+       default:
+         break;
+      }
+
       /* Skip frontend and driver specific options here.  */
       if (!(cl_options[option->opt_index].flags & (CL_COMMON|CL_TARGET|CL_LTO)))
        continue;
@@ -108,17 +122,6 @@ lto_write_options (void)
       if (cl_options[option->opt_index].flags & (CL_DRIVER|CL_WARNING))
        continue;
 
-      /* Skip explicitly some common options that we do not need.  */
-      switch (option->opt_index)
-       {
-       case OPT_dumpbase:
-       case OPT_SPECIAL_input_file:
-         continue;
-
-       default:
-         break;
-       }
-
       for (j = 0; j < option->canonical_option_num_elements; ++j)
        append_to_collect_gcc_options (&temporary_obstack, &first_p,
                                       option->canonical_option[j]);
index 1f4d2128d94d1ef22f04097cdfd889b7e5a4d180..24de743306a0875d66922a9c66f7f8b55ccf23c4 100644 (file)
@@ -393,6 +393,12 @@ merge_and_complain (struct cl_decoded_option **decoded_options,
       struct cl_decoded_option *foption = &fdecoded_options[i];
       switch (foption->opt_index)
        {
+       case OPT_SPECIAL_unknown:
+       case OPT_SPECIAL_ignore:
+       case OPT_SPECIAL_program_name:
+       case OPT_SPECIAL_input_file:
+         break;
+
        default:
          if (!(cl_options[foption->opt_index].flags & CL_TARGET))
            break;