OSDN Git Service

Handle OPT_SPECIAL_XXX in LTO
authorhjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 28 Nov 2012 14:38:40 +0000 (14:38 +0000)
committerhjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 28 Nov 2012 14:38:40 +0000 (14:38 +0000)
Backported from mainline
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@193893 138bc75d-0d04-0410-961f-82ee72b054a4

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

index a020386..15f0c30 100644 (file)
@@ -1,3 +1,19 @@
+2012-11-28  H.J. Lu  <hongjiu.lu@intel.com>
+
+       Backported from mainline
+       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  Paolo Bonzini  <pbonzini@redhat.com>
 
        PR rtl-optimization/55489
index 668a5ce..8c504c2 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 1c9aa83..fcc9b72 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;