]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR lto/50602 (ICE in tree_nrv, at tree-nrv.c:155 during large LTO build)
authorRichard Guenther <rguenther@suse.de>
Fri, 4 May 2012 11:47:06 +0000 (11:47 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Fri, 4 May 2012 11:47:06 +0000 (11:47 +0000)
2012-05-04  Richard Guenther  <rguenther@suse.de>

PR lto/50602
* lto-wrapper.c (merge_and_complain): Complain about mismatches
of -freg-struct-return and -fpcc-struct-return.
(run_gcc): Pass through -freg-struct-return and -fpcc-struct-return
from the input file options and ignore those from the link
command line.

From-SVN: r187155

gcc/ChangeLog
gcc/lto-wrapper.c

index 72e3264c345900cd35bc4d2b8e9ec9579ce0e7d6..6403309039575290d927fe99bbb93ab0ce2ebe12 100644 (file)
@@ -1,3 +1,12 @@
+2012-05-04  Richard Guenther  <rguenther@suse.de>
+
+       PR lto/50602
+       * lto-wrapper.c (merge_and_complain): Complain about mismatches
+       of -freg-struct-return and -fpcc-struct-return.
+       (run_gcc): Pass through -freg-struct-return and -fpcc-struct-return
+       from the input file options and ignore those from the link
+       command line.
+
 2012-05-04  Richard Guenther  <rguenther@suse.de>
 
        PR tree-optimization/53168
index 1c9aa833dbc8463669ca6869b951ccff9c104e54..b656db251fac45cd222bdb46226fb799037ef5b9 100644 (file)
@@ -414,6 +414,16 @@ merge_and_complain (struct cl_decoded_option **decoded_options,
          if (j == *decoded_options_count)
            append_option (decoded_options, decoded_options_count, foption);
          break;
+
+       case OPT_freg_struct_return:
+       case OPT_fpcc_struct_return:
+         for (j = 0; j < *decoded_options_count; ++j)
+           if ((*decoded_options)[j].opt_index == foption->opt_index)
+             break;
+         if (j == *decoded_options_count)
+           fatal ("Option %s not used consistently in all LTO input files",
+                  foption->orig_option_with_args_text);
+         break;
        }
     }
 }
@@ -558,6 +568,8 @@ run_gcc (unsigned argc, char *argv[])
        case OPT_fcommon:
        case OPT_fexceptions:
        case OPT_fgnu_tm:
+       case OPT_freg_struct_return:
+       case OPT_fpcc_struct_return:
          break;
 
        default:
@@ -619,6 +631,12 @@ run_gcc (unsigned argc, char *argv[])
          /* We've handled these LTO options, do not pass them on.  */
          continue;
 
+       case OPT_freg_struct_return:
+       case OPT_fpcc_struct_return:
+         /* Ignore these, they are determined by the input files.
+            ???  We fail to diagnose a possible mismatch here.  */
+         continue;
+
        default:
          break;
        }